筛选流中的空项目

2022-09-04 06:00:18

使用 Java 流时,映射后有时会出现空值。目前,当需要省略这些值时,我使用:

.stream()
.<other operations...>
.filter(element -> element != null)
.<other operations...>

对于功能更强大的样式,可以快速编写一个微小的帮助器方法:

public static <T> boolean nonNull(T entity) {
    return entity != null;
}

因此,您可以改用方法引用:

.stream()
.<other operations...>
.filter(Elements::nonNull)
.<other operations...>

我找不到这样的jdk方法,即使我怀疑他们已经包含了一个。这里有不同的方法吗?还是他们出于某种原因省略了这一点?


答案 1

您可以使用 Java8 SDK 中的 Objects::nonNull

.stream()
.<other operations...>
.filter(Objects::nonNull)
.<other operations...>

答案 2

您可以使用对象::nonNull

如果提供的引用为非空,则返回 true,否则返回 false。

.stream()
.<other operations...>
.filter(Objects::nonNull)
.<other operations...>