7

我想知道在 java 中是否可以像在pythonif-else中一样在条件下评估多个变量。

实际代码

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

伪代码

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

5 回答 5

19

第一稿

你可以这样写:

boolean notNull(Object item) { 
    return item != null;
}

那么你可以像这样使用它:

if (notNull(abc) && notNull(xyz)) {
    //...
}

更新 1:

我想出了一个新想法,使用可变参数编写函数,例如:

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

用法:(您可以将多个参数传递给函数)

if (notNull(abc, xyz)) {
    //...
}

更新 2:

最好的方法是使用库apache commons ObjectUtils,它包含几个现成的方法,例如:

于 2013-06-04T06:44:26.107 回答
7

唯一可行的方法是 ifabc是一个布尔值(它不会做你希望它做的事情,它只会测试 abc == true 是否为真)。在 Java 中没有办法将一件事与多件事进行比较。

于 2013-06-04T06:39:06.923 回答
1

这在java中是不可能的,你可以使用Varargs

public boolean  checkAnything(Object args...){
  for(Object obj args){
    if(...)
  }
  return ....;
}

也可以看看:

于 2013-06-04T06:50:35.997 回答
1

在 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。您可以根据自己的要求使用它。

于 2013-06-04T07:03:06.490 回答
0

恕我直言,首先是更好的方法和可能的方法。

来到第二种方式..如果它们是boolean价值观

if(abc  && xyz )
{//...}
于 2013-06-04T06:40:15.317 回答