这个问题在这里已有答案:
对于Java SE 8 doc,allMatch(Predicate<? super T> predicate)
“...评估谓词对流的元素的通用量化(对于所有x P(x))。如果流为空,则量化被认为是空的满足并且始终为真(无论P(不管P) X))。”
将空列表视为allMatch为true似乎并不直观。什么是“普遍量化”和“空洞满足”?
假设我有一份馅饼清单。
我想检查所有馅饼是否都是山核桃。
所以我看第一个馅饼,它是樱桃,所以我说这是假的。
我只能说我的馅饼不是山核桃,这是假的。
因此,当我没有馅饼时,没有一个馅饼不是山核桃。
这是一个愚蠢的例子,但这个警告已经让我好几次了