是否有一个用作零参数的默认接口Predicate,它本质上是一个Supplier<Boolean>,它本质上是:
public interface Condition {
boolean test();
}
Run Code Online (Sandbox Code Playgroud)
如果没有(我似乎找不到),那为什么会缺席呢?难道真的没有用吗?
唯一有意义的“零”参数谓词是常量 (true|false)。由于根据定义,可能的实现集仅限于 2 个,为什么您要为 2 个恒定条件使接口复杂化(或梦想)?
想象一下这段代码的愚蠢之处:
if() {
doFoo();
}
Run Code Online (Sandbox Code Playgroud)
如果是的话,那么 doFoo() ?!只能是真实的,或者可以删除代码。如果它是true常量,那么谓词就没有意义。