Collections字段EMPTY_SET、EMPTY_LIST和EMPTY_MAP分别起到了什么作用呢?我用以下代码:
- Java code
List<String> list = Collections.EMPTY_LIST; list.add("aa"); System.err.println(list.size());
会报Exception in thread "main" java.lang.UnsupportedOperationException的异常,也就是说List为一个空的列表,但定义了之后有不能使用,那请问各位大神List<String> list = Collections.EMPTY_LIST;这句话定义的列表到底起了什么作用呢?或者在哪些地方能用到?最好举个例子哈!在这里先谢谢大家啦!
------解决方案--------------------------------------------------------
有些方法返回list,map或者set,同时这些方法要求永不返回null
譬如有些条件一判断就知道要返回一个空集合,就不得不new一个,然后返回。就可以用这里的这个常量
------解决方案--------------------------------------------------------
它返回的是一个不可变的List。没有办法add。
使用场影,比如当一个查询结果集为空,而不想返回null时,这时可以用Collections.EMPTY_LIST来返回一个空集合。
如果楼主平时用不到的话,那就不要用好了,不用太纠结这个。
------解决方案--------------------------------------------------------
看看 Null Object模式
------解决方案--------------------------------------------------------
EMPTY_LIST 返回的list是不可变的(Immutable)
所以不能用ADD
------解决方案--------------------------------------------------------
EMPTY_SET
public static final Set EMPTY_SET空的 set(不可变的)。此 set 是可序列化的。
另请参见:
emptySet()
--------------------------------------------------------------------------------
EMPTY_LIST
public static final List EMPTY_LIST空的列表(不可变的)。此列表是可序列化的。
另请参见:
emptyList()
--------------------------------------------------------------------------------
EMPTY_MAP
public static final Map EMPTY_MAP空的映射(不可变的)。此映射是可序列化的。
从以下版本开始:
1.3
另请参见:
emptyMap()