パラメータの組み合わせがJavaでnullのチェック

AJ007:

私は、Javaに新しいです。私はそれを解決するための最も簡単かつクリーンな方法を見つけることができませんでした、今問題に直面しています。

私は、関数に渡される3つのパラメータ(文字列)を持っていると仮定.Iは、個々の変数または変数の組み合わせがNULLでないかどうかを確認し、それに従って行動したい(あまりにもハッシュマップすることができます)。

たとえば、これを行うための一つの方法は、if-他にこの方法を使用しています

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 
}

   ....

どのようにこのような状況を実現しています。私は似た見つかった質問が、コードがきれいになりませんでした。すべてのヘルプは理解されるであろう

ハーリド・シャー:

これらのユーティリティ関数を書くと、簡単に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 
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=179081&siteId=1