Collections的emptyList、EMPTY_LIST和null的区别
时间: 2024-04-10 22:33:35 浏览: 240
在Java中,有几种表示空集合的方式,包括`Collections.emptyList()`、`Collections.EMPTY_LIST`和`null`。它们之间有一些区别:
1. `Collections.emptyList()`:这是一个静态方法,返回一个不可变(空)列表对象。它是一个类型安全的空列表,可以用于表示空集合。它的类型是`List<T>`,其中的`T`是泛型参数。
示例代码:
```java
List<String> emptyList = Collections.emptyList();
```
2. `Collections.EMPTY_LIST`:这是一个过时的字段,它是一个不可变(空)列表对象。它的类型是`List`,没有泛型参数。由于它是过时的,在新的代码中不推荐使用。
示例代码:
```java
List<?> emptyList = Collections.EMPTY_LIST;
```
3. `null`:这是一个特殊的值,表示引用为空。如果将一个变量赋值为`null`,则表示该变量没有引用任何对象。在使用集合时,将集合变量赋值为`null`表示该集合为null,即没有引用任何集合对象。
示例代码:
```java
List<String> emptyList = null;
```
总结起来,`Collections.emptyList()`是推荐的方式来表示空集合,它是类型安全的,并且可以直接使用泛型。而`Collections.EMPTY_LIST`是过时的方式,不推荐使用。而将集合变量赋值为`null`则表示该集合为空,没有引用任何对象。
阅读全文