开发时我试图返回一个空的 List 。
public Collection<?> getElements() {
// return elements
}
我搜索了一个简单的方法,我的第一个想法是创建一个没有任何元素的 ArrayList 并返回它。如下例所示:
public Collection<?> getElements() {
return new ArrayList<?>();
}
对我来说,空列表的开销太大了。
答案 0 :(得分:2)
对于上述“问题”,有一个非常简单的解决方案:
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对象 每次通话。使用这种方法的成本可能相当 使用同名的字段。 (与此方法不同,该字段不会 提供类型安全。)