我有下面的代码,我正在检查两个变量的非空检查。
if (userParameter != null || configurationParameter != null){
add.userParameter();
add.configurationParameter();
}
我是否有办法在null
条件中检查if
,而不是if((userParameter or configurationParameter) != null)
。
答案 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)
由于您有两个参数,因此您可以做的最多是根据检查创建一个返回true
或false
的方法:
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
。