在实践中,返回一个空列表是否更好this:
return Collections.emptyList();
Or like this:
return new ArrayList<Foo>();
或者这完全取决于您要如何处理返回的列表?
主要区别在于Collections.emptyList()返回一个不可变的列表,即无法添加元素的列表。 (同样适用于List.of()Java 9 中引入。)
在极少数情况下,您do想要修改返回的列表,Collections.emptyList()
and List.of()
因此是not一个不错的选择。
我想说,只要合同(文档)没有明确说明不同,返回不可变列表就完全没问题(甚至是首选方式)。
此外,emptyList()
可能不会在每次调用时创建一个新对象。
此方法的实现不需要为每次调用创建单独的 List 对象。使用此方法的成本可能与使用类似名称的字段相当。 (与此方法不同,该字段不提供类型安全。)
实施emptyList
看起来如下:
public static final <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}
因此,如果您的方法(返回空列表)被频繁调用,这种方法甚至可能会给您带来更好的 CPU 和内存性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)