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

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

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

img

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

img

img

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

img

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

img

猜你喜欢

转载自blog.csdn.net/qq_43842093/article/details/124563567
今日推荐