Collections.emptyList()生成的List不支持add方法
今儿处理一个空指针异常bug,发现是由于Collection.emptyList()生成的List不能进行操作引起的,便查阅了大佬们的文档,作点简单的总结。

List的实现类实现了add方法,而emptyList的实现类中关于add的实现是抛一个UnsupportedOperationException,所以emptyList生成的list是不能进行add操作的。

使用场景与优点:
- 使用场景:当你需要一个空的list并且不会对其做增加和删除操作的时候可用,如果需要对其进行增删操作,需先将其转化为ArrayList
- 优点:
1. 相对于new ArrayList(),emptyList() 在创建List的时候不用新建一个对象,可以减少内存开销
2. 方法返回一个emptyList的时候,不会报空指针异常,如果直接返回Null,没有进行非空判断的话会报空指针异常(return该list不会报,使用return的list就会报)
Collections.emptyList()返回的List实例不支持add方法,因为其内部会抛出UnsupportedOperationException。这个方法适用于需要一个不可修改的空列表且关注内存效率的场景。与newArrayList()相比,emptyList()避免了额外的对象创建。直接返回emptyList不会导致空指针异常,但对返回的列表进行修改操作则会抛出异常。
1436

被折叠的 条评论
为什么被折叠?



