【发布时间】:2020-01-16 22:47:19
【问题描述】:
在迭代之前检查流是否为空或不为空是否推荐/好方法
我能想到的是将 stream() 分配给 Stream vairable 并检查空和空
是否有任何 java 8 功能/特性可以检查?
参考 :- https://www.baeldung.com/java-null-safe-streams-from-collections
【问题讨论】:
在迭代之前检查流是否为空或不为空是否推荐/好方法
我能想到的是将 stream() 分配给 Stream vairable 并检查空和空
是否有任何 java 8 功能/特性可以检查?
参考 :- https://www.baeldung.com/java-null-safe-streams-from-collections
【问题讨论】:
在非空对象上调用stream() 永远不应返回null。所以检查 stream 是否为null 似乎没有必要。
如果流是空的,什么都不会发生。那为什么要检查呢?
是的,JDK 中有一些方法可以帮助您检查不是null 的参数。看看java.util.Objects。
【讨论】:
cars.stream().map()。
不,没有必要¹。
只要您使用空 Streams 而不是 null(例如作为方法参数),一切正常。你不需要检查 Stream 是否为空,就像你不需要检查 Collection 是否为空一样,如果你在代码中使用空集合而不是空值(你应该)。
¹ 现在这是假设来自连续源(集合、生成器)的“原始”流。您可以使用map(o -> o.getPossiblyNull()) 之类的内容轻松创建包含空值的流。在这种情况下,您可能希望使用 .filter(Objects::nonNull) 从 Stream 中删除任何 null 元素。
【讨论】:
Optional,与流无关。