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