2012-10-12 43 views
1

有什麼區別:和Java中,收集構造

TreeMap<String, String> myMap = new TreeMap<>(); 

TreeMap<String, String> myMap = new TreeMap<String,String>(); 

謝謝!

+1

您發現一些好點[這裏](http://stackoverflow.com/questions/4166966/what-is-the-point-of-the-diamond- operator-in-java-7) –

回答

2

它們在引入鑽石運算符<>的java 7中是相同的。在較老版本的java中,鑽石操作員將無法工作。

菱形運算符將類型推斷帶入構造函數。泛型方法的類型推斷在java 5和更高版本中可用。在Java 7之前,要使用編譯器的類型推斷創建泛型類,必須使用通用工廠方法,如static <K,T> Map<K,T> createMap()

1

第一個將只在Java 7,第二個工作,從Java 5+

+0

雖然請注意,由於泛型僅用於編譯時,並且不存在於字節碼中,代碼僅使用Java-6功能加上菱形運算符,並用Java編譯7編譯器將運行在Java 6 JVM上。 – Edd

1

無差異可言..!它只是一種語言結構。 <>是新引入的運算符,被稱爲diamond operator來自java 7.

+0

感謝您的幫助! –