检查Java中哪些参数组合为空

AJ0*_*007 5 java conditional if-statement

我是Java新手.我现在面临一个问题,我无法找到解决问题的最简单,最干净的方法.

假设我有3个参数(字符串)传递给一个函数(也可能是一个Hashmap).我想检查单个变量或变量组合是否不是Null并相应地采取行动.

例如,一种方法是使用if-else这种方式

if(a!=null && b == null && c == null) { 
      //doSomething   
}
 else if(a==null && b!= null && c == null ) { 
     //doSomething 
}
 else if(a==null && b0= null && c != null) { 
     //doSomething 
}
  ......
    //Similarly combination of two variables
 if(a!=null && b != null && c == null) {
     //doSomething 
}
 else if(a!=null && b== null && c != null) { 
    //doSomething
}
 else if(a==null && b!= null && c != null) { 
    //doSomething 
} 
  ......
    //and so on 
    //Similarly combination of three variables
 if(a!=null && b != null && c != null) {
    //doSomething 
}

   ....
Run Code Online (Sandbox Code Playgroud)

如何实现这种情况.我发现了类似的问题,但没有使代码干净.任何帮助将不胜感激

Kha*_*hah 7

编写这些实用程序功能,您可以轻松地比较n个术语.

public static boolean areAllNull(Object... objects) {
     return Stream.of(objects).allMatch(Objects::isNull);
}

public static boolean areAllNotNull(Object... objects) {
     return Stream.of(objects).allMatch(Objects::nonNull);
}
Run Code Online (Sandbox Code Playgroud)

你可以使用这些函数进行n次比较.

if(areAllNotNull(a) && areAllNull(b,c)) { 
      //doSomething   
}
 else if(areAllNotNull(b) && areAllNull(a,c)) { 
     //doSomething 
}
 else if(areAllNotNull(c) && areAllNull(b,a)) { 
     //doSomething 
}
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这种方法.我会用这种方式重写`isAllNull()`:`public static boolean isAllNull(Object ... objects){return Stream.of(objects).allMatch(Objects :: isNull); }` (2认同)