为什么 findFirst() 会抛出一个 NullPointerException,如果它找到的第一个元素是 null?
2022-08-31 09:01:24
为什么这会抛出一个 ?java.lang.NullPointerException
List<String> strings = new ArrayList<>();
strings.add(null);
strings.add("test");
String firstString = strings.stream()
.findFirst() // Exception thrown here
.orElse("StringWhenListIsEmpty");
//.orElse(null); // Changing the `orElse()` to avoid ambiguity
中的第一项是 ,这是一个完全可以接受的值。此外,返回一个 Optional,这对于能够处理 s 更有意义。strings
null
findFirst()
findFirst()
null
编辑:更新了,以减少歧义。orElse()