在集合中,我发现了以下内容:
@SuppressWarnings("unchecked")
public static final List EMPTY_LIST = new EmptyList<>();
我真的找不到任何理由使用:
new EmptyList<>()
这里而不是:
new EmptyList()
就像 java < 1.7 一样。
这种方法有什么区别吗?
如果您只关心 <> 运算符,那么您应该看到Java 7 中菱形运算符的意义何在?.
关于 EMPTY_LIST:要么你做:
@SuppressWarnings("rawtypes")
List list = Collections.EMPTY_LIST;
或类似的东西:
List<String> s = Collections.emptyList();
使用 <> 运算符的原因是维护原始类型的编译时检查。上面的链接很好地描述了这一点。