为什么 Stream.allMatch() 为空流返回 true?
2022-08-31 10:10:41
我和我的同事遇到了一个错误,这是由于我们假设空流调用将返回。allMatch()
false
if (myItems.allMatch(i -> i.isValid()) {
//do something
}
当然,假设而不阅读文档是我们的错。但是我不明白的是,为什么空流的默认行为返回 。这是什么原因呢?与 (相反返回 false) 一样,此操作以一种命令式方式使用,该方式离开 monad,并可能在语句中使用。考虑到这些事实,有什么理由让默认为空流对于大多数用途是可取的?allMatch()
true
anyMatch()
if
allMatch()
true