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
}