for-each ループの反復処理が始まる前に null チェックを回避する方法はありますか? [重複] 質問する

for-each ループの反復処理が始まる前に null チェックを回避する方法はありますか? [重複] 質問する

コレクションを反復処理する必要があるたびに、for-each ループの反復処理が始まる直前に null をチェックすることになります。次のようになります。

if( list1 != null ){
    for(Object obj : list1){

    }
}

「if」ブロックを書かずに済むような、もっと短い方法はありますか? 注: 私は Java 5 を使用しており、しばらくはこれで我慢するつもりです。

ベストアンサー1

可能であれば、コレクションがnull最初から存在しないようにコードを設計する必要があります。

nullコレクションは悪い習慣です(この理由により)。代わりに空のコレクションを使用する必要があります。(例:Collections.emptyList()

Iterableあるいは、コレクションを実装して受け取り、コレクションを処理するラッパークラスを作成することもできますnull
その場合は次のように記述します。foreach(T obj : new Nullable<T>(list1))

おすすめ記事