如何检查是否至少有一个方法返回true?

oknwwptz  于 2021-07-14  发布在  Java
关注(0)|答案(2)|浏览(410)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

昨天关门了。
改进这个问题
我有一个与方法的接口:

boolean isForbidden();

很少有实现是spring组件。在used类中,我会自动编写它们,并检查是否至少有一个返回true。我该怎么做?有没有简单的方法来检查它?
接口:

public interface ForbiddenChecker {

   boolean isForbidden();

}

班级:

@Autowired
private List<ForbiddenChecker> validators;

我想创建一个方法,比如:

public boolean shouldInvokeProcess() {
   // at least one component return true
}

这个方法的主体是什么样子的?

waxmsbnn

waxmsbnn1#

感觉好像我错过了什么。。。

public boolean shouldInvokeProcess() {
  for (var checker : validators) if (checker.isForbidden()) return false;
  return true;
}

如果你是那种人的话!闪亮的新锤子各位:

public boolean shouldInvokeProcess() {
  return !validators.stream().anyMatch(ForbiddenChecker::isForbidden);
}

Both seem about equally fine, here, and trivial.
um6iljoc

um6iljoc2#

如果我理解正确,您当然可以迭代验证程序列表,将每个验证程序都称为“isforbidden”方法。如果返回true,则从“shouldinvokeprocess”返回true

相关问题