既然它们都是不可变的,为什么还需要它呢?
发布于 2011-05-30 09:49:33
有时,这比返回null更好。
public List<?> getList(){
if(list == null){
return Collections.emptyList();
}
return list;
}发布于 2011-05-30 09:53:44
它们是方便的特性:对于必须返回非空值的函数,您可以使用它们,而不必创建新对象,并且可以对它们进行相等性检查。
发布于 2011-07-07 00:41:02
只是补充一下上面的内容:
**在方法调用者接收EMPTY_something而不是实例化的List/Map的情况下,使用空的list/map/set可以获得一些性能优势。如果你查看Collections.java的源代码,你可以看到EmptyList,EmptyMap静态类,与常规的ArrayList不同,它具有精简的方法实现。HashMap。
**节省JVM堆空间,因为没有为这些空集合设置初始容量。
以上可能看起来不是很重要,但是重要的考虑因素和最佳实践。
https://stackoverflow.com/questions/6171624
复制相似问题