針對創(chuàng)建泛型定義和實例太過繁瑣的問題,Java 7做了一項改進捧毛,以減少處理泛型時敲鍵盤的次數(shù)欺旧。如下代碼:
Map<Integer, Map<String,String>> usersList = new HashMap<Integer, Map<String,String>>();
可簡寫為下面這樣嗎姑丑?
Map<Integer, Map<String,String>> usersList = new HashMap<>();
在Java 7中,像這樣的聲明縮寫完全合法辞友,還可以向后兼容栅哀,所以當你需要處理以前的代碼時,可以把過去比較繁瑣的聲明去掉称龙,使用新的類型推斷語法留拾,這樣可以省出點兒空間來。
編譯器為這個特性采用了新的類型推斷形式鲫尊。它能推斷出表達式右側(cè)的正確類型痴柔,而不是僅僅替換成定義完整類型的文本。
為什么叫“鉆石語法”
把它稱為”鉆石語法”是因為這種類型信息看起來像鉆石疫向。原來提案中的名字是“為泛型實例創(chuàng)建而做的類型推斷改進”(Improved Type Inference for Generic Instance Creation)咳蔚。這個名字太長,可縮寫ITIGIC聽上去又很傻搔驼,所以干脆就叫鉆石語法了谈火。