私は4つString
の変数を持っています:a、b、c、d。
そのうちの1つがそうであるかどうかを確認しnull
ますreturn false
。
私もです:
if(a==null || b ==null || c ==null || d ==null) return false;
これには簡単な方法がありますか?
(私はJavaを始めています)
私は4つString
の変数を持っています:a、b、c、d。
そのうちの1つがそうであるかどうかを確認しnull
ますreturn false
。
私もです:
if(a==null || b ==null || c ==null || d ==null) return false;
これには簡単な方法がありますか?
(私はJavaを始めています)
メソッドが次のようになっている場合:
public boolean foo() {
String a = "a", b = "b", c = "c", d = "d";
if(a == null || b == null || c == null || d == null) {
return false;
}
return true;
}
次に、コードを削減できる方法があります。代わりにこれを行うことができます:
public boolean foo() {
String a = "a", b = "b", c = "c", d = "d";
return (a != null || b != null || c != null || d != null);
}
しかし、テストする文字列が 10 個、または 100 個と多い場合は、文字列を配列に入れてfor-eachループを使用すると、必要なコードが少なくてすみます。実際、次のメソッドは、stringだけでなく、あらゆるタイプのobjectで機能します。
public boolean containsNullObject(Object... objs) {
// loop through each string
for(Object o : objs) {
if(s == null) { return false; } // return false if string is null
}
// if there was no instance of a null object, return true
return true;
}
配列またはfor-eachループが何であるかわからない場合は、これらを見てください。
いいえ、あなたの解決策は可能な限り単純です。
これは、 foreach ループとString
varargを使用してもう少しエレガントに表現できるようです。読みやすくなり、ステートメントを簡単にデバッグできます。
// method only returns true if all strings are non-null
public boolean all(String... strings) {
for(String str : strings) {
if(null == str) {
return false;
}
}
return true;
}
次に、次のように呼び出します。
return all(a, b, c, d); // will return false if any of these are null, otherwise true.
-条件を評価するために使用Non-Short circuit OR
しています。この場合、これが最も適切で最も単純だと思います。
-つまり、あなたの解決策はそれが必要なものです。
if
ここでは冗長です。使用してくださいreturn !(a == null || b == null || c == null || d == null);