最佳答案
我的同事和我有一个 bug,这是由于我们假设调用 allMatch()
的空流将返回 false
。
if (myItems.allMatch(i -> i.isValid()) {
//do something
}
当然,假设而不阅读文档是我们的错误。但是我不明白的是为什么空流的默认 allMatch()
行为返回 true
。这样做的理由是什么?与 anyMatch()
(反过来返回 false)一样,这个操作是以一种命令式的方式使用的,与单子相分离,可能在 if
语句中使用。考虑到这些事实,是否有任何理由为什么对于大多数使用而言,在空流上将 allMatch()
默认设置为 true
是可取的?