emptyList()方法的使用
- 通过java.util.Collections.emptyList()方法的相关源码可以得知它实际上就是返回了一个空的List,但是这个List和我们平时常用的那个List是不一样的。这个方法返回的List是Collections类的一个静态内部类,它继承AbstractList后并没有实现add()、remove()等方法,因此这个返回值List并不能增加删除元素。
- 既然这个List不能进行增删操作,那么它有何意义呢?
- 这个方法主要目的就是返回一个不可变的列表,使用这个方法作为返回值就不需要再创建一个新对象,可以减少内存开销。并且返回一个size为0的List,调用者不需要校验返回值是否为null,所以建议使用这个方法返回可能为空的List。
- emptySet()、emptyMap()方法同理。
项目中的使用
比如列表查询 返回集合的时候 如果没有符合条件的数据 可返回 EmptyList<>()
//obj为查询出来的集合
Object datas = obj == null ?Collections.emptyList() : obj;