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就会报)