在if条件下一起评估多个变量

时间:2013-06-04 06:38:14

标签: java if-statement

我想知道java中是否有可能在if-else条件下一起评估多个变量,如python

实际代码

if(abc!=null && xyz!=null)
{//...}

虚拟代码

if(abc && xyz !=null)
{// will it be possible}

5 个答案:

答案 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 )
{//...}