Por que findFirst () lança uma NullPointerException se o primeiro elemento encontrado é nulo?
Por que isso lança umjava.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
O primeiro item emstrings
énull
, que é um valor perfeitamente aceitável. Além disso,findFirst()
retorna umOpcional, o que faz ainda mais sentido parafindFirst()
ser capaz de lidarnull
s.
EDIT: atualizou oorElse()
ser menos ambíguo.