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.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage