Collections.EMPTY_LIST和Collections.emptyList()
在有的时候,我们需要返回以恶个空的集合的对象,比如在做数据查询的时候,不需要返回一个null或者是异常,那么就可以返回一个空的集合对象。
接着看源码:
public static final List EMPTY_LIST = new EmptyList<>();
public static final <T> List<T> emptyList() {
return (List<T>) EMPTY_LIST;
}
我们会发现emptyList是对EMPTY_LIST做了一个泛型支持,所以在不需要泛型的情况下可以直接使用EMPTY_LIST,反之使用emptyList()。
使用:
List emptyList = Collections.EMPTY_LIST;
List<Object> objects = Collections.emptyList();
//objects.add("如何"); 错误使用
错误:
Collections.emptyList()返回的是一个共享的不可修改的空列表,因为它返回的是Collections的一个静态内部类,继承AbstractList但是没有实现add(),remove()等方法,所以不可以修改,如果做操作,就会出现如下报错: