我了解围绕泛型的类型擦除,但我仍然惊讶地发现这段代码没有产生错误:
public class MyClass {
private final HashMap<ClassA,ClassB> hashMap;
public MyClass() {
this.hashMap = new HashMap<>();
}
}
大多数情况下,我使用 Java 1.6 的 Java 标准版本的 Eclipse,当我选择自动完成的构造函数名称时,泛型类型会自动填充。我现在使用的是 Eclipse 和 Java 1.7 的 J2EE 版本,但它们不是。代码编译并且没问题。这是完全多余的信息,所以我不明白为什么需要它。但是你不必把它放出来就感觉不对。
为什么这不是必需的,或者我在这里完全遗漏了什么?