相关疑难解决方法(0)

如果找到的第一个元素为null,为什么findFirst()会抛出NullPointerException?

为什么这会抛出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
Run Code Online (Sandbox Code Playgroud)

第一项stringsnull,这是一个完全可以接受的值.此外,findFirst()返回一个Optional,这对于findFirst()能够处理nulls 更有意义.

编辑:更新orElse()不那么模棱两可.

java optional java-8 java-stream

77
推荐指数
4
解决办法
6万
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1

optional ×1