Handle!= null检查两个变量

时间:2017-01-16 08:42:25

标签: java

我有下面的代码,我正在检查两个变量的非空检查。

 if (userParameter != null || configurationParameter != null){
   add.userParameter();
   add.configurationParameter();
 }

我是否有办法在null条件中检查if,而不是if((userParameter or configurationParameter) != null)

5 个答案:

答案 0 :(得分:6)

  

无法将null(单个)事物与多个事物进行比较   java中的东西(即userParameter& configurationParameter)。

但是您可以编写如下方法,在使用||检查多个null值时使用它: -

public boolean isNull(Object... args){
for(Object arg: args){
  if(arg==null) return true;
}
return false;
}

答案 1 :(得分:3)

由于您有两个参数,因此您可以做的最多是根据检查创建一个返回truefalse的方法:

 if (checkForNull(userParameter, configurationParameter)){
   add.userParameter();
   add.configurationParameter();
 }

 private boolean checkForNull(Object... objects){
    for (Object obj : objects){
        if (obj == null){
            return true;
        }
    }
    return false;
 }

<强> EDITED

正如@shmosel和@AxelH所提出的那样,该方法使用varargs会更有效率。谢谢你的改进

答案 2 :(得分:2)

是的,有三元运算符?(条件运算符):

 if (userParameter != null ? configurationParameter != null : false) {

(注意:逻辑与您的代码不同,您可能想要检查两者是否都为空) 但是,使用其他人正在使用的功能也许是一个好主意。

答案 3 :(得分:2)

在某些情况下,您当前的代码只会检查一个条件,因为||运算符会短路。情况是,如果条件userParameter != null为真,那么JVM甚至不会检查其他条件。

除此之外,据我所知,在一次比较中,我无法在两个单独的变量中检查null

答案 4 :(得分:0)

您可以使用Binary Operator Check Here

或者您可以使用ternary Operator