3

在集合中,我发现了以下内容:

@SuppressWarnings("unchecked")
public static final List EMPTY_LIST = new EmptyList<>();

我真的找不到任何理由使用:

new EmptyList<>()

这里而不是:

new EmptyList()

就像 java < 1.7 一样。

这种方法有什么区别吗?

4

1 回答 1

2

如果您只关心 <> 运算符,那么您应该看到Java 7 中菱形运算符的意义何在?.

关于 EMPTY_LIST:要么你做:

@SuppressWarnings("rawtypes")
List list = Collections.EMPTY_LIST;

或类似的东西:

List<String> s = Collections.emptyList();

使用 <> 运算符的原因是维护原始类型的编译时检查。上面的链接很好地描述了这一点。

于 2013-12-05T15:24:38.110 回答