1. ホーム
  2. java

[解決済み] 拡張forループでのNullチェック

2022-04-18 03:59:32

質問

Javaでforループでnullをガードするのに最適な方法は何ですか?

これは醜いようです。

if (someList != null) {
    for (Object object : someList) {
        // do whatever
    }
}

または

if (someList == null) {
    return; // Or throw ex
}
for (Object object : someList) {
    // do whatever
}

他に方法がないのかもしれません。に入れるべきでした。 for の構成自体が、もしそれがNULLならループを実行しない、ということなのでしょうか?

どのように解決するのですか?

そのリストをどこから入手したかを確認した方がよいでしょう。

空のリストは失敗しないので、空のリストがあればいいのです。

もし、このリストをどこかから入手して、それがOKかどうかわからない場合は、ユーティリティ・メソッドを作って、このように使うことができます。

for( Object o : safe( list ) ) {
   // do whatever 
 }

そしてもちろん safe となる。

public static List safe( List other ) {
    return other == null ? Collections.EMPTY_LIST : other;
}