2013-04-26 94 views

回答

23

第二個擁有類型參數inferred,這是Java 7 <>一個新東西叫做「the diamond」。

還要注意的是,type inference itself is not new in Java,但推斷它爲被實例化的泛型類的能力是新的。

來自Java SE 7之前版本的編譯器能夠推斷泛型構造函數的實際類型參數,類似於泛型方法。但是,如果您使用菱形(<>),Java SE 7及更高版本中的編譯器可以推斷實例化的泛型類的實際類型參數。

我想說第二個可能是首選,只要你能確保代碼只需要在Java 7上運行,因爲它更清晰,並且只會減少冗餘信息。

3

如果你的java編譯器的版本低於1.7,第二個將不會編譯。

2

最後一個是可用於Java版本7或更新版本的快捷方式。

3

第二個減少代碼的混亂,它是在Java 7新的,但你的代碼應該是

List<Integer> nunbers = new ArrayList<>(); 

既然你可以編寫到接口List,實施ArrayList的類型參數是推斷出來的。

2

他們將編譯到完全相同的代碼,因爲Java 7的第二件事就是你可以使用一個快捷方式,因爲它是100%清楚的<>,你可以離開屬於什麼它空

相關問題