【发布时间】:2015-12-18 17:29:25
【问题描述】:
在 Eclipse IDE 中使用 JDK 1.8 时,以下行没有原始类型警告:
1) ArrayList<Double> d1 = new ArrayList<>();
但是有一个编译器警告:
2) ArrayList<Double> d2 = new ArrayList();
在语法上,唯一的区别是尖括号“”。但在这两种情况下都没有实际指定类型。如果尖括号留空,是否推断出Double类型?
【问题讨论】:
-
可以,只要编译器能从上下文中推断出来,就可以省略类型参数。
-
仅供参考,java中
<>之类的空尖括号称为菱形运算符 -
回答显而易见的问题; “为什么会这样?”因为原始类型是支持向后兼容性的必要因素
标签: java eclipse generics arraylist