在开发时,我试图返回一个空List。
public Collection<?> getElements() {
// return elements
}
我寻找了一种简单的方法,我的第一个想法是创建例如一个没有任何元素的ArrayList并返回它。像下面的例子:
public Collection<?> getElements() {
return new ArrayList<?>();
}
对我来说,空列表的开销太大了。
在开发时,我试图返回一个空List。
public Collection<?> getElements() {
// return elements
}
我寻找了一种简单的方法,我的第一个想法是创建例如一个没有任何元素的ArrayList并返回它。像下面的例子:
public Collection<?> getElements() {
return new ArrayList<?>();
}
对我来说,空列表的开销太大了。
对于上述“问题”,有一个非常简单的解决方案:
public Collection<?> getElements() {
return Collections.EMPTY_LIST;
}
这将返回一个空列表。
注意:
它返回一个不可变对象!如果您需要一个不可编辑的对象,您只能使用它。
类型安全
如果你想获得一个类型安全的列表,你应该使用下面的例子 [ 1 ]:
List<String> s = Collections.emptyList();
支持三种接口:
清单:
List l = Collections.EMPTY_LIST;
List<String> s = Collections.emptyList();
地图:
Map m = Collections.EMPTY_MAP;
Map<String> ms = Collections.emptyMap();
设置:
Set s = Collections.EMPTY_SET;
Set<String> ss = Collections.emptySet();
注意:
此方法的实现不需要为每个调用创建单独的 XXX 对象。使用此方法的成本可能与使用同名字段的成本相当。(与此方法不同,该字段不提供类型安全。)