Warum löst findFirst () eine NullPointerException aus, wenn das erste gefundene Element null ist?
Warum wirft dies einjava.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
Der erste Artikel instrings
istnull
, ein durchaus akzeptabler Wert. Außerdem,findFirst()
gibt ein @ zurüOptiona, was für @ noch sinnvoller ifindFirst()
m mit @ umgehen zu könnnull
s.
EDIT: aktualisiert dasorElse()
um weniger mehrdeutig zu sein.