Если у меня есть редко используемая коллекция в каком-то классе, экземпляры которой могут создаваться много раз, я иногда могу прибегнуть к следующему: 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 () действительно ужасна ... Я интересовался, есть ли способ сделать это лучше или вообще другой способ справиться с этим.