今回は、複数の文字列が「すべてNULL」、「いずれかNULL」を判定する方法について、次の実装例と使用例を紹介していきます。
- for文を使用する。
- java.util.streamを使用する。
- Apache Commons Langライブラリを使用する。
検証環境
検証に使用した環境/ライブラリを次に記載します。
- Java
- バージョン:11
- Apache Commons Lang
- バージョン:3.12.0
for文
実装例(すべてNULL)
for文を使用して「すべてNULL」の確認をするための実装例は、次のようになります。
public boolean isAllNull(String... values) {
// 値が未設定かどうかを確認します。
if (null == values || 0 == values.length) {
return true;
}
for (String s : values) {
// 1つでもNULLでない場合は、「すべてNULL」の条件を満たさないため終了します。
if (null != s) {
return false;
}
}
return true;
}
実装例を使用して実行した結果は、次のようになります。
isAllNull() = true
isAllNull(null, null) = true
isAllNull("a", null) = false
isAllNull("a", "b") = false
実装例(いずれかNULL)
for文を使用して「いずれかNULL」の確認をするための実装例は、次のようになります。
public boolean isAnyNull(String... values) {
// 値が未設定かどうかを確認します。
if (null == values || 0 == values.length) {
return true;
}
for (String s : values) {
// 1つでもNULLの場合は、「いずれかNULL」の条件を満たすため終了します。
if (null == s) {
return true;
}
}
return false;
}
実装例を使用して実行した結果は、次のようになります。
isAnyNull() = true
isAnyNull(null, null) = true
isAnyNull("a", null) = true
isAnyNull("a", "b") = true
java.util.stream
実装例(すべてNULL)
java.util.streamを使用して「すべてNULL」の確認をするための実装例は、次のようになります。
条件を確認するときに「allMatch
」を使用することで、すべて一致しているかどうかを判定することができるようになります。
public boolean isAllNullStream(String... values) {
// 値が未設定かどうかを確認します。
if (null == values || 0 == values.length) {
return true;
}
// 「すべてNULL」の条件を満たしているかどうかを「allMatch」を使用して確認します。
// 1つでもNULLでない場合は、「すべてNULL」の条件を満たさないため「false」が返却されます。
return Stream.of(values).allMatch(e -> null == e);
}
実装例を使用して実行した結果は、次のようになります。
isAllNullStream() = true
isAllNullStream(null, null) = true
isAllNullStream("a", null) = false
isAllNullStream("a", "b") = false
実装例(いずれかNULL)
java.util.streamを使用して「いずれかNULL」の確認をするための実装例は、次のようになります。
条件を確認するときに「anyMatch
」を使用することで、いずれか一致しているかどうかを判定することができるようになります。
public boolean isAnyNullStream(String... values) {
// 値が未設定かどうかを確認します。
if (null == values || 0 == values.length) {
return true;
}
// 「いずれかNULL」の条件を満たしているかどうかを「anyMatch」を使用して確認します。
// 1つでもNULLの場合は、「いずれかNULL」の条件を満たすため「true」が返却されます。
return Stream.of(values).anyMatch(e -> null == e);
}
実装例を使用して実行した結果は、次のようになります。
isAnyNullStream() = true
isAnyNullStream(null, null) = true
isAnyNullStream("a", null) = true
isAnyNullStream("a", "b") = false
Apache Commons Lang
実装例(すべてNULL)
Apache Commons Langライブラリを使用して、「すべてNULL」かどうかを確認するための使用例は、次のようになります。
org.apache.commons.lang3.StringUtils.isAllEmpty(null, null)
実装例(いずれかNULL)
Apache Commons Langライブラリを使用して、「いずれかNULL」かどうかを確認するための使用例は、次のようになります。
org.apache.commons.lang3.StringUtils.isAnyEmpty("a", null)
まとめ
複数の文字列のNULL判定をする方法の実装例とライブラリ使用例を紹介しました。