一尘不染

为什么有人会在Java中使用Collections.emptyList?

java

我试图了解使用以下命令创建列表的新实例之间的区别:

new ArrayList<X>

Collections.emptyList();

据我了解,稍后将返回一个不可变的列表。这意味着无法添加,删除或修改它。我想知道为什么会创建一个不可变的emptyList?有什么用?谢谢


阅读 301

收藏
2020-12-03

共1个答案

一尘不染

假设您必须返回一个集合,并且您不想每次都创建几个对象。

interface Configurable {
    List<String> getConfigurationList();
}

// class which doesn't have any configuration
class SimpleConfigurable implements Configurable {
    public List<String> getConfigurationList() { return Collections.emptyList(); }
}

返回空集合通常比返回更可取 null

2020-12-03