stream中findAny报null

jdk1.8

Posted by Autuan.Yu on May 23, 2022

在 JDK 1.8 版本中的 Stream 特性中,findAny是一个常用的api:

list.stream()
    .findAny()
    .orElse(null);

但有时会碰到 NPE 异常: 在findAny抛出。

可以在 stream 中增加一层判空来避免:

list.stream()
    .filter(Objects::nonNull)
    .findAny()
    .orElse(null);