¿Por qué findFirst () arroja una NullPointerException si el primer elemento que encuentra es nulo?
¿Por qué esto arroja unjava.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
El primer artículo enstrings
esnull
, que es un valor perfectamente aceptable. Además,findFirst()
devuelve unOpcional, lo que tiene aún más sentido parafindFirst()
para poder manejarnull
s.
EDITAR: actualizado elorElse()
ser menos ambiguo