Collections.emptyList () вместо нулевой проверки?

Если у меня есть редко используемая коллекция в каком-то классе, экземпляры которой могут создаваться много раз, я иногда могу прибегнуть к следующему: idiom "для сохранения ненужных созданий объектов:

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)
         ;

Теперь мне было интересно, не могу ли я устранить эти нулевые проверки с помощью Collectio ns.emptyList () , однако тогда мне пришлось бы изменить проверку if в add () вот так:

if (list == Collections.<Object>emptyList())
    list = new ArrayList<Object>();

Есть ли лучший способ справиться с этим, кроме простого выделения нового пустого сбор каждый раз?

РЕДАКТИРОВАТЬ: для ясности, я хотел бы, чтобы использовал Collections.emptyList (), но приведенная выше проверка в add () действительно ужасна ... Я интересовался, есть ли способ сделать это лучше или вообще другой способ справиться с этим.

16
задан Philip Kamenarsky 1 July 2011 в 10:47
поделиться