是否有一个默认接口用作零参数Predicate
,基本上是Supplier<Boolean>
,它本质上也是:
public interface Condition {
boolean test();
}
如果没有(我似乎无法找到),那为什么会缺席呢?它不是真的有用吗?
答案 0 :(得分:3)
我能看到的唯一场景是使用全局状态来决定返回值的函数。
在这种情况下,滥用该界面。但是,您可以将该全局变量作为参数传递,并且所有变量都将按预期工作。
答案 1 :(得分:1)
唯一有意义的'Zero'参数谓词是常量(true | false)。根据定义,可能的实现集合限于2,为什么你会为2个恒定条件复杂化(或梦想)一个接口?
想象一下这段代码的愚蠢:
if() {
doFoo();
}
如果是,那么doFoo()?!它只能是 true 或者可以删除代码。如果它是 true 的常量,则谓词毫无意义。