1.背景
在某些状况下,咱们常常须要发挥一个空的集合对象,好比说在数据查询时,并不须要发挥一个NULL或是异常,那么就能够返回一个空的集合对象。
JDK提供了两个方式来返回集合对象,那么二者有何区别呢?那就看代码吧!
2.源码解析spa
[Java] 纯文本查看 复制代码code
?对象
1ci 2get 3编译器 4源码 5io 6编译 7table |
|
从上面咱们能够看出,emptyList不过是对EMPTY_LIST作了一个泛型支持。这点上咱们就能够很清晰的了解二者不一样的使用场景了!如果不须要泛型的状况,能够直接使用Collections,反之则使用emptyList().
3.使用
对于EMPTY_LIST就很少介绍了,咱们能够直接使用Collections.EMPTY_LIST。
对于Collections.emptyList()的使用有点须要注意的地方。
如果定义了一个变量来保存这个空集合的话,那么没有问题。
[Java] 纯文本查看 复制代码
1 |
|
如果在某个场景下须要将空对象进行赋值那么就须要以下写法
organization.setPersonList(Collections.<Person> emptyList());
4.BTW
虽然在源码中存在
[Java] 纯文本查看 复制代码
1 2 3 4 5 |
|
可是对于咱们不管是
for (int i =0 ; i < ...)仍是 for (Person p : personList)都不会调用到get(int index)这个方法,能够放心使用!前一种方式咱们能够很好理解,由于首先是调用了size().后者foreach的实现原理还须要考究下!
5.Note
EmptyList是空的集合,不能进行add等操做。