检查哪些(组合)参数为空

时间:2014-08-18 15:04:10

标签: java

假设我有4个变量

String a;
String b;
String c;
String d;

我想检查单个变量或变量组合是否为Null并相应地采取行动。

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

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

如何实现这种情况Switch甚至不接受null 我想使用队列,因为它不允许空值,但我需要有一个变量的键,以便我可以得到值并操纵一些东西。将不胜感激

1 个答案:

答案 0 :(得分:8)

你可以用switch语句构建一个额外的变量来实现这个:

int switchvar = 0;

if (a == null) {switchvar += 1;}
if (b == null) {switchvar += 10;}
if (c == null) {switchvar += 100;}
if (d == null) {switchvar += 1000;}

然后你可以使用

switch (switchvar) {
   case(1): //only a ==null
 ...
   case(101): //a == null and  c == null
 ....
   case(1011): //a,b,d null 
 ....
   case(1111): // all variables null
 }