不可变的空集合
有时使用不可变的空集合是合适的。该 Collections
类提供了一种有效的方式来获得这样的集合:
List<String> anEmptyList = Collections.emptyList();
Map<Integer, Date> anEmptyMap = Collections.emptyMap();
Set<Number> anEmptySet = Collections.emptySet();
这些方法是通用的,会自动将返回的集合转换为它所分配的类型。也就是说,例如 emptyList()
的调用可以分配给任何类型的 List
,同样也可以分配给 emptySet()
和 emptyMap()
。
这些方法返回的集合是不可变的,因为如果你试图调用会改变其内容的方法(add
,put
等),它们会抛出 UnsupportedOperationException
。这些集合主要用作替代空方法结果或其他默认值,而不是使用 null
或使用 new
创建对象。