这个问题已经在这里有了答案:
已关闭8年。
我试图了解使用以下命令创建列表的新实例之间的区别:
new ArrayList<X>
和
Collections.emptyList();
据我了解,稍后会返回一个不可变的列表。这意味着无法添加,删除或修改它。
我想知道为什么会创建一个不可变的emptyList?有什么用?
谢谢
最佳答案
假设您必须返回一个集合,并且您不想每次都创建几个对象。
interface Configurable {
List<String> getConfigurationList();
}
// class which doesn't have any configuration
class SimpleConfigurable implements Configurable {
public List<String> getConfigurationList() { return Collections.emptyList(); }
}
返回空集合通常比返回
null
更可取