【发布时间】:2020-07-16 03:47:58
【问题描述】:
在 Java 7 中,我们可以使用菱形运算符:
List<String> list = new ArrayList<>();
现在我在最近的一些代码中看到人们放弃了菱形运算符:
List<String> list = new ArrayList();
这是在较新的 Java 版本(Java 8+)中添加的新功能以删除菱形运算符吗?或者他们只是依赖于原始的旧 ArrayList 类型(出于向后兼容性的原因恰好可以工作,应该避免)?
【问题讨论】:
-
它仍然是原始类型,您仍然不应该使用它。
-
没有菱形运算符(或任何类型的泛型)过去、现在和将来都是有效的 Java。它只是意味着使用原始类型。这是从泛型在 Java 中不存在的时候(在 Java 5 之前)开始的。你不应该使用原始类型,没有理由使用它们。始终指定您要使用的泛型类型(或使用菱形运算符从上下文自动推断它)。
标签: java generics diamond-operator