Java 处理!=两个变量的null检查
我有下面的代码,我正在检查两个变量的NOTNULL检查Java 处理!=两个变量的null检查,java,Java,我有下面的代码,我正在检查两个变量的NOTNULL检查 if (userParameter != null || configurationParameter != null){ add.userParameter(); add.configurationParameter(); } 是否有任何方法可以在一个if条件中检查notnull,如java中的if((userParameter或configurationParameter)!=null)。由于您有两个参数,您最多可以创
if (userParameter != null || configurationParameter != null){
add.userParameter();
add.configurationParameter();
}
是否有任何方法可以在一个
if
条件中检查notnull
,如java中的if((userParameter或configurationParameter)!=null)
。由于您有两个参数,您最多可以创建一个返回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;
}
已编辑
正如@shmosel和@AxelH所建议的那样,使用varargs将更有效。感谢您的改进因为您有两个参数,您最多可以创建一个方法,根据检查返回
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;
}
已编辑
正如@shmosel和@AxelH所建议的那样,使用varargs将更有效。感谢改进是的,有三元运算符
?
(条件运算符):
(注意:逻辑与代码不同,您可能需要检查两者是否都不为null)然而,使用其他人也在使用的功能可能是个好主意 是的,有三元运算符
?
(条件运算符):
(注意:逻辑与代码不同,您可能需要检查两者是否都不为null)然而,使用其他人也在使用的功能可能是个好主意 在某些情况下,您当前的代码将只检查一个条件,因为
|
操作员短路。如果条件userParameter!=null
为true,则JVM甚至不会检查其他条件
除此之外,据我所知,无法在一次比较中检查两个单独变量中的
null
。在某些情况下,您当前的代码将只检查一个条件,因为|
运算符短路。如果条件userParameter!=null
为true,则JVM甚至不会检查其他条件
除此之外,据我所知,没有办法在一次比较中检查两个单独变量中的null
没有办法将空(单个)对象与多个对象进行比较
java中的东西(即userParameter和configurationParameter)
但您可以编写如下方法,在使用| |检查多个值是否为null时使用它:-
public boolean isNull(Object... args){
for(Object arg: args){
if(arg==null) return true;
}
return false;
}
没有办法将空(单个)对象与多个对象进行比较
java中的东西(即userParameter和configurationParameter)
但您可以编写如下方法,在使用| |检查多个值是否为null时使用它:-
public boolean isNull(Object... args){
for(Object arg: args){
if(arg==null) return true;
}
return false;
}
您可以使用
二进制运算符
或者您可以使用
三值运算符
您可以使用二值运算符
或者你可以使用
三元运算符
你想用它做什么?是的,这个问题没有严格的联系,但我认为在你的代码中应该有&&运算符。如果两者都不为空,那么就进行运算,对吗?我建议将|
替换为&&
,但我真的不理解你的问题。可能与你试图存档的内容重复?是的,问题不明确,但我认为在你的代码中应该有&&operator。如果两者都不为null,那么就进行操作,对吗?我建议用&&
替换|
,但我真的不理解你的问题。如果使用helper方法,则可能会出现重复,最好全力以赴:布尔checkForNull(Object…objects){for(Object obj:objects)If(obj==null)return false;return true;}
相同的注释,使用varargs使这种方法更有用。(我刚刚在评论部分写了这篇文章)你只会用这个来检查第一个论点。返回true
应该在循环之后,如果您确定没有null
;)我并不是说varargs更有效,只是更有用。checkForNull
对于一个不检查空值的方法来说可能是一个令人困惑的名称。另外,第一行缺少一个右括号。如果使用帮助器方法,最好全力以赴:boolean checkForNull(Object…objects){for(Object obj:objects)If(obj==null)返回false;返回true;}
相同的注释,使用varargs使这种方法更有用。(我刚刚在评论部分写了这篇文章)你只会用这个来检查第一个论点。返回true
应该在循环之后,如果您确定没有null
;)我并不是说varargs更有效,只是更有用。checkForNull
对于一个不检查空值的方法来说可能是一个令人困惑的名称。另外,第一行缺少一个右括号。为什么是字符串
<代码>对象效果更好我的方法只是一个提示。这里没有提到参数的类型,所以假设它们是字符串。好吧,在null
check的情况下,类型不重要,不能在primitve上执行,仅此而已。所以你可以是泛型;)为什么是字符串
<代码>对象效果更好我的方法只是一个提示。这里没有提到参数的类型,所以假设它们是字符串。好吧,在null
check的情况下,类型不重要,不能在primitve上执行,仅此而已。所以你可以是泛型;)这与&&
或|
不同,与&&
或|
不同,这与的if(userParameter!=null&&configurationParameter!=null)相同{
。根据经验,在三值运算中永远不需要布尔文字。Nit:它的正确名称是the,这是一个三值运算符(目前是唯一的三值运算符)。@shmosel是的,我知道逻辑是不同的(请参阅no)