考虑需要评估数组或列表的if条件的情况。一个简单的例子:检查所有元素是否为true。但我正在寻找一种通用的方法来实现它。
通常我会这样做:
如果这个工作正常运行,我可以做更复杂的事情,比如:
通常我会这样做:
boolean allTrue = true;
for (Boolean bool : bools){
if (!bool) {
allTrue = false;
break;
}
}
if (allTrue){
// do Something
}
现在我想将它隐藏在我的if条件中。我尝试使用Lambda表达式,但它不起作用:
if (() -> {
for (Boolean bool : bools)
if (!bool)
return false;
return true;
}){
// do something
}
如果这个工作正常运行,我可以做更复杂的事情,比如:
if (() -> {
int number = 0;
for (MyObject myobject : myobjects)
if (myObject.getNumber() != 0)
numbers++;
if (numbers > 2)
return false;
return true;
}{
//do something
}
有没有更好的方法来做这件事,还是只是语法错误?
更新:我不是在谈论布尔数组,而是寻找一种通用的方法来实现它。
.anyMatch()
吗? - fge@FunctionalInterface
虽然有些会返回布尔值,但它并不是一个布尔类型;你必须调用该“接口”才能得到布尔结果。 - fge