我有一个简单的验证器方法。为什么空元素流返回true?它是如何运作的?
过滤 null 后会发生什么?
private static boolean isNotValidCeo(List<Ceo> ceos) {
if (CollectionUtils.isEmpty(ceos)) {
return true;
}
return ceos.stream()
.filter(Objects::nonNull)
.map(Ceo::getSuperBonus)
.allMatch(Objects::isNull);
}
.filter(Objects::nonNull)
结果为空集,空集上的 allMatch 为 true,因为没有任何元素与规则相矛盾。