java - if条件检查在JAVA中的任何一点是否只有一个变量是四个变量的集合

标签 java logic logical-operators

如果设置了四个变量中的一个以上,我想显示错误... 在 Java 中..这就是我想出的..

if( (isAset() && isBset()) || (isBset() && isCset()) || (isCset() && isDset()) || (isDset() && isAset()) )
    attri.greedySelectionException(..);  

我想看看是否有更好的方法......?

最佳答案

如何使用计数器然后将其与 1 进行比较?

有点像...

int i = 0;
if (isAset()) i++;
if (isBset()) i++;
if (isCset()) i++;
if (isDset()) i++;

if (i > 1)
  ...

或者,如果您正在检查某个对象的属性,您可以使用一些反射来遍历相关属性,而不是每个属性都有一个 if 语句。

编辑:查看下面 Marius Žilėnas 的可变参数静态方法以获得一些更简洁的代码,即使用(将老式的 for 更改为 for-each 和三元表达式的 if):

static int trueCount(boolean... booleans) {
  int sum = 0;
  for (boolean b : booleans) {
    if (b) {
      sum++;
    }
  }
  return sum;
}

而不是几个 if 语句。

关于java - if条件检查在JAVA中的任何一点是否只有一个变量是四个变量的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20193128/

相关文章:

java - 在 neo4j 中出现以下错误 "org.neo4j.kernel.api.exceptions.TransactionFailureException: Transaction rolled back even if marked as successful"

java - 错误: Could not find or load main class when trying to run a java program on command line

c - 为什么我的prog无法识别pronic号码?

c++ - 游戏开发逻辑(获取区域单位)

java - 为 Booth 算法实现算术右移

c - 为什么 (true && true) 会引发错误,而 (1 && 1) 不会?

java - 从 Java 调用时 Perl 进程找不到命令 svn

java - Hibernate 模型对象作为 VO 对象

c++ - 逻辑运算 : I want to make Logic operations easily

python - 是否可以在 Python 中重载逻辑和?