我想知道java中是否有可能在if-else
条件下一起评估多个变量,如python。
实际代码
if(abc!=null && xyz!=null)
{//...}
虚拟代码
if(abc && xyz !=null)
{// will it be possible}
答案 0 :(得分:15)
FIRST DRAFT
你可以写这样的smth:
boolean notNull(Object item) {
return item != null;
}
然后你就可以使用它:
if (notNull(abc) && notNull(xyz)) {
//...
}
更新1:
我提出了一个新想法,使用 varargs 编写函数,如:
boolean notNull(Object... args) {
for (Object arg : args) {
if (arg == null) {
return false;
}
}
return true;
}
用法:(你可以传递函数多个参数)
if (notNull(abc, xyz)) {
//...
}
更新2:
最好的方法是使用库apache commons ObjectUtils, 它包含几个随时可用的方法,如:
答案 1 :(得分:7)
唯一可行的方法是abc
是一个布尔值(它不会做你希望它会做的事情,它只会测试abc == true)。在Java中无法将一件事与多件事进行比较。
答案 2 :(得分:2)
在Java中不可能。相反,你可以这样做: -
public boolean checkForNulls(Object... args){
List<Object> test = new ArrayList<Object>(Arrays.asList(args));
return test.contains(null); // Check if even 1 of the objects was null.
}
如果任何项目为null
,则该方法将返回true
,否则它将返回false
。您可以根据自己的要求使用它。
答案 3 :(得分:1)
这是不可能在java中,您可以使用Varargs
:
public boolean checkAnything(Object args...){
for(Object obj args){
if(...)
}
return ....;
}
另见:
答案 4 :(得分:0)
恕我直言首先是更好的方式和可能的方式。
来到第二路......如果它们是boolean
值
if(abc && xyz )
{//...}