关于new ArrayList()和Collections.emptyList()

很明显 new ArrayList()是创建一个Collection实例,它是Collection集合下面的一个实现类(中间继承了AbstractList),它的实例有Collection的增加,删除,修改等方法,

ArrayList平常用的很多,这里就不过多说明,主要说一下Collections.emptyList()。首先看一下源码:

 

 

emptyList()方法返回的是Collections的一个成员属性EMPTY_LIST,再看一下EMPTY_LIST:

 

 

 

 可以看出Collections.emptyList()方法最终调用的是Collections的一个静态内部类EmptyList的构造方法实例化一个EmptyList对象,然后再看一下EmptyList这个类:

 

 可以看出它并没有Collection集合的那些增加,修改删除方法。如果用它来创建的list来进行增加修改等操作会出现异常。

 

posted @ 2021-11-17 20:04  threadThread  阅读(1195)  评论(0)    收藏  举报