JavaまたはApache Commonsに可変引数のnullチェック機能はありますか?
-
03-07-2019 - |
質問
4つの変数があり、そのうちの1つがnullであるかどうかを確認します。できます
if (null == a || null == b || null == c || null == d) {
...
}
しかし、本当に欲しいのは
if (anyNull(a, b, c, d)) {
...
}
しかし、私は自分で書きたくありません。この関数は、一般的なJavaライブラリに存在しますか?コモンズラングを確認しましたが、表示されませんでした。可変引数を使用して、任意の数の引数を取る必要があります。
解決
Javaライブラリでできることは次のとおりです。
if (asList(a, b, c, d).contains(null)) {
他のヒント
それがコモンズにあるかどうかはわかりませんが、書くのに約10秒かかります:
public static boolean anyNull(Object... objs) {
for (Object obj : objs)
if (obj == null)
return true;
return false;
}
コメントで静的ヘルパーを配置する場所を尋ねました、私はお勧めします
public class All {
public static final boolean notNull(Object... all) { ... }
}
次に、呼び出しに修飾名を使用します。たとえば、
assert All.notNull(a, b, c, d);
クラス Any
および isNull
などのメソッドを使用して同じことができます。
Java 8では、さらにエレガントな方法でそれを行うことができます。
if (Stream.of(a, b, c, d).anyMatch(Objects::isNull)) { ... }
またはそれをメソッドに抽出できます:
public static boolean anyNull(Object... objects) {
return Stream.of(objects).anyMatch(Objects::isNull);
}
次に、コードで次のように使用します。
if (anyNull(a, b, c, d)) { ... }
所属していません StackOverflow