是否存在零参数谓词?

时间:2014-05-15 20:24:51

标签: java java-8

是否有一个默认接口用作零参数Predicate,基本上是Supplier<Boolean>,它本质上也是:

public interface Condition {
  boolean test();
}

如果没有(我似乎无法找到),那为什么会缺席呢?它不是真的有用吗?

2 个答案:

答案 0 :(得分:3)

我能看到的唯一场景是使用全局状态来决定返回值的函数。

在这种情况下,滥用该界面。但是,您可以将该全局变量作为参数传递,并且所有变量都将按预期工作。

答案 1 :(得分:1)

唯一有意义的'Zero'参数谓词是常量(true | false)。根据定义,可能的实现集合限于2,为什么你会为2个恒定条件复杂化(或梦想)一个接口?

想象一下这段代码的愚蠢:

if() {
   doFoo();
}

如果是,那么doFoo()?!它只能是 true 或者可以删除代码。如果它是 true 的常量,则谓词毫无意义。