目录
起因
在看《Java开发手册(泰山版)》发现了这段话:
【强制】Collections类返回的对象,如: emptyList()/singletonList()等都是 immutable list,不可对其进行添加或者删除元素的操作。
调用方一旦进行了添加元素的操作,就会触发 UnsupportedOperationException 异常。
探究
public static final <T> List<T> emptyList() { |
这个EMPTY_LIST是EmptyList,而EmptyList则是Collections的内部类;
而这个内部类并没有实现重写父类AbstractList的add方法,而下面是AbstractList.add方法源码:
public boolean add(E e) { public void add(int index, E element) { |
这里,父类直接抛出了UnsupportedOperationException异常;