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

标签 java if-statement conditional

我是 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 
}

   ....

如何实现这种情况。我找到了类似的 question ,但没有使代码干净。任何帮助将不胜感激

最佳答案

写下这些效用函数,你就可以很容易地比较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);
}

您可以使用这些函数进行 n 次比较。

if(areAllNotNull(a) && areAllNull(b,c)) { 
      //doSomething   
}
 else if(areAllNotNull(b) && areAllNull(a,c)) { 
     //doSomething 
}
 else if(areAllNotNull(c) && areAllNull(b,a)) { 
     //doSomething 
}

关于java - 检查Java中哪些参数组合为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53444933/

相关文章:

java - 安卓3g连接延迟

java - Spring-Roo 删除 Mysql,尽管 hibernate.hbm2ddl.auto

javascript - 检查输入是否在两个 int 或 float 之间然后显示或不显示内容

javascript - If 语句不起作用 (Javascript)

C If 语句不起作用

java - 如何对自定义实体集合进行排序?

java - 仅针对特定组件的 ajaxStatus

java - 执行此功能的更好或更标准的方法是什么?

c# - 在 C# 中有条件地调用构造函数

C# 条件等效于 !DEBUG