有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

此处不需要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) 个答案