簡體   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