使用Java Stream时,映射后有时会出现空值。目前,当需要省略这些值时,我使用:
.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方法,即使我怀疑他们已经包含了一个。这里有不同的方法吗?或者他们是否因为某种原因而忽略了这一点?
答案 0 :(得分:28)
您可以使用Java8 SDK中的Objects::nonNull:
.stream()
.<other operations...>
.filter(Objects::nonNull)
.<other operations...>
答案 1 :(得分:2)
您可以使用Objects::nonNull
如果提供的引用为非null,则返回true,否则返回 假的。
.stream()
.<other operations...>
.filter(Objects::nonNull)
.<other operations...>