如何在java中检查多个布尔值为true或false>

时间:2017-02-10 11:06:49

标签: java

我有8个布尔值。当8个布尔值中的一个或多个出现错误时,我想回滚。

boolean flag = false;
        boolean flag1 = false;
        boolean flag2 = false;
        boolean flag3 = false;
        etc,,.

flag = dbCall...

此处标志值会发生变化。

我需要手动检查

    if(flag == false && flag1 == false && ....){
      userTransaction = rollback;
    }else{
     userTransaction = commit;
    }

有没有简单的方法来检查java中的多个布尔值。

5 个答案:

答案 0 :(得分:4)

您的代码最初存在错误。

if(flag = false && flag1 = false && ....){
  userTransaction = rollback;
}

=(分配)与==(比较)不同。

接下来就是你当前的风格,你可以减少代码

if(! flag || !flag1 ||  ....){
  userTransaction = rollback;
}

因为它们是布尔值,你不需要再用布尔值来检查。

我建议的最后一件事是,这些变量来自何处,维护一个列表并对它们进行迭代以检查所有变量,这样,与检查相关的代码保持不变,即使n个布尔值为dir()

答案 1 :(得分:4)

以下怎么样?

if(flag  && flag1  && ....){
     userTransaction = commit;
  } else {
      userTransaction = rollback;
  }

答案 2 :(得分:2)

我认为这是解决这个问题的最快方法。

  1. 将您的标记写入List或Array

  2. 像这样测试

  3. 如清单:

    if(!myList.contains(false)) //all true;

    As Array

    if(!myArray.asList().contains(false)) //all true;

答案 3 :(得分:2)

您可以通过Apache对BooleanUtils的所有值执行lr操作:

and

或者只是按常规方式行事:

if (BooleanUtils.and(flag1, flag2, flag3, flag4)) {
    userTransaction = commit;
} else {
    userTransaction = rollback;
}

答案 4 :(得分:1)

如果您不需要中间结果,那么您可以试试这个:

library(data.table)
dcast(setDT(mydata), issn+periodico~area, value.var = "qualis")

这将确保执行每个数据库操作......并且该结果包含最终结果。