空元素流返回 true

问题描述 投票:0回答:1

我有一个简单的验证器方法。为什么空元素流返回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);
}

调试器的示例

java stream java-11
1个回答
0
投票

.filter(Objects::nonNull)
结果为空集,空集上的 allMatch 为 true,因为没有任何元素与规则相矛盾。

© www.soinside.com 2019 - 2024. All rights reserved.