MST

星途 面试题库

面试题:Java中如何在同步Java流中处理常见的空指针异常

在Java流的同步操作过程中,例如使用`filter`、`map`等方法对集合进行处理时,常常会遇到空指针异常。请描述一种合理的处理空指针异常的方式,并给出一段简单的代码示例。
39.7万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 处理方式
    • 在进行流操作前,先对可能为空的集合进行判空处理。如果集合为空,直接返回一个空流,这样后续的流操作就不会因为空指针而抛出异常。
  2. 代码示例
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class StreamNullPointerHandling {
    public static void main(String[] args) {
        List<String> list = null;
        List<String> result = list == null? new ArrayList<>() : list.stream()
              .filter(str -> str != null)
              .map(String::toUpperCase)
              .collect(Collectors.toList());
        System.out.println(result);
    }
}

在上述代码中,首先对list进行判空,如果list为空,就返回一个空的ArrayList。如果list不为空,则进行正常的流操作,在filter中还对集合元素进行了空值过滤,避免map操作时因元素为空而抛出空指针异常。