为了账号安全,请及时绑定邮箱和手机立即绑定

我们是否需要检查 java 8 中的 Stream 是否为 null 并且不进行迭代

我们是否需要检查 java 8 中的 Stream 是否为 null 并且不进行迭代

泛舟湖上清波郎朗 2023-08-04 14:41:18
是否建议/好的方法在迭代之前检查流是否不为空或不为空我能想到的是将stream()分配给Stream vairable并检查empty和null有没有 java 8 函数/特性来检查它?
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

调用stream()非空对象永远不应该返回null。因此检查似乎null没有必要。

如果流为空,则什么也不会发生。那么为什么要检查呢?

是的,JDK 中有一些方法可以帮助您检查参数是否不存在 null。看看吧java.util.Objects


查看完整回答
反对 回复 2023-08-04
?
翻阅古今

TA贡献1780条经验 获得超5个赞

不,没有必要。

只要您使用空 Streams 而不是 null(例如作为方法参数),一切都会正常工作。您不需要检查 a 是否Stream为空,就像您不需要检查 a 是否Collection为空一样,如果您在代码中使用空集合而不是 null(您应该这样做)。

1 现在假设“原始”流来自连续源(集合、生成器)。您可以使用类似map(o -> o.getPossiblyNull()). 在这种情况下,您可能需要使用.filter(Objects::nonNull)从流中删除任何空元素。


查看完整回答
反对 回复 2023-08-04
  • 2 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信