繁体   English   中英

“ new ArrayList”和有什么不一样 <ClassName> ()”和‘新的ArrayList &lt;&gt;()’构造一个ArrayList时?

[英]What is the difference between “new ArrayList<ClassName>()” and “new ArrayList<>()” when constructing an ArrayList?

这是一个具体的例子:

  ArrayList<String> x = new ArrayList<String>();
  ArrayList<String> y = new ArrayList<>();

两种方法似乎都可以正常工作。 有什么区别?

没有区别,我可以称它为新功能。

我们必须在Java 7之前指定type参数:

ArrayList<String> x = new ArrayList<String>(); 

从Java 7开始,我们可以使用Diamond:

ArrayList<String> y = new ArrayList<>();

这是不同的,Java的设计师希望使其变得更容易。

构造时:

new ArrayList<>();

您要告诉编译器从左侧Infer类型。

现在:

new ArrayList<String>();

明确声明您打算使用的类型。

如果我还记得我以前的编程类,那是一个新版本的Java中添加的语法糖功能的示例。 Java实例化y时会推断出您的String类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM