通常,我可以用这种方式新建一个ArrayList(如果element是String):
List<String> list = new ArrayList<String>();
但是,我找到了一种新方法:
List<String> list = new ArrayList<>();
如果列表中的元素是复杂类型,似乎我可以通过第二种方式保存很多代码。
这些之间有什么区别吗?
答案 0 :(得分:3)
在JDK 1.7中添加了类型推断,第二种风格。
如果列表中的元素是复杂类型,似乎我可以通过第二种方式保存很多代码。
如果您使用的是1.7或+,那么它会自动推断出来,这意味着ArrayList获取了它声明的List的类型。
称为Diamond运算符,菱形运算符的目的是简化泛型类的实例化。
答案 1 :(得分:2)
是的,在Java(编译器)版本1.7
之前不支持第二个版本。
因此,如果您希望源代码可以与JDK 1.6兼容,则无法使用新语法。
答案 2 :(得分:2)
List<String> list = new ArrayList<>();
这是在{7}中引入的Type Inference for Generic Instance Creation(&lt;&gt;非正式地称为“菱形运算符”)的示例。
为了简化代码,我们鼓励您在Java 7或更高版本上使用它。