此处不需要if条件的Java Lambda表达式
考虑IF条件需要评估数组或列表的情况。一个简单的例子:检查所有元素是否为真。但我正在寻找通用的方法
通常我会这样做:
boolean allTrue = true;
for (Boolean bool : bools){
if (!bool) {
allTrue = false;
break;
}
}
if (allTrue){
// do Something
}
但现在我想把它藏起来。我试着用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
}
有更好的方法吗?只是语法错误吗
更新 我不是在谈论布尔数组,而是在寻找一种通用的方法来实现它
共 (0) 个答案