何度もインスタンス化される可能性のあるクラスでめったに使用されないコレクションがある場合、不要なオブジェクトの作成を保存するために、次の「イディオム」に頼ることがあります。
List<Object> list = null;
void add(Object object) {
if (list == null)
list = new ArrayList<Object>();
list.add(object);
}
// somewhere else
if (list != null)
for (Object object : list)
;
今、私はこれらのnullチェックを使用して排除できないかどうか疑問に思ってCollections.emptyList()
いましたが、ifチェックインを次のadd()
ように変更する必要があります。
if (list == Collections.<Object>emptyList())
list = new ArrayList<Object>();
毎回新しい空のコレクションを割り当てる以外に、これを処理するためのより良い方法はありますか?
編集:明確にするために、Collections.emptyList()を使用したいのですが、上記のadd()のチェックは本当に醜いです...それを行うためのより良い方法があるのか、それとも他の方法があるのか疑問に思いました。これを処理するの。