如果我在某个类中有一个很少使用的集合,可能会被多次实例化,我有时可能会求助于以下“成语”以节省不必要的对象创建:
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)
;
现在我想知道我是否不能使用 消除那些空检查Collections.emptyList()
,但是我必须add()
像这样更改 if 签入:
if (list == Collections.<Object>emptyList())
list = new ArrayList<Object>();
除了每次都分配一个新的空集合之外,有没有更好的方法来处理这个问题?
编辑:为了清楚起见,我想使用 Collections.emptyList(),但是上面在 add() 中的检查真的很丑……我想知道是否有更好的方法,甚至还有其他方法处理这个。