從有效的Java:編譯器如何推斷無參數方法的類型?
一個通用的方法,顯着的特點是,你不需要,你必須調用 通用CON組structors時指定 類型參數的值明確。編譯器通過檢查方法參數的類型來計算出類型 參數的值。
那麼編譯器在沒有參數的情況下如何推斷類型?
例如,考慮創建一個新的HashMap每次調用時下列靜態工廠方法:
// Generic static factory method
public static <K,V> HashMap<K,V> newHashMap() {
return new HashMap<K,V>();
}
當調用該方法,如:
Map<String,String> pair = newHashMap(); //it returns a Map<String,String>
,當它被稱爲像
Map<String, List<String>> anagrams =newHashMap(); // it returns a Map<String,List<String>
它也可以通過調用網站的期望來推斷返回類型,但是隻在有限的情況下:'String s = genericMethod();'其中'genericMethod(){...}'。 – 2013-02-25 15:15:03
@Geek,你有沒有想過的例子? – 2013-02-25 15:23:01
@ KellyS.French請參閱已編輯的問題示例 – Geek 2013-02-25 16:04:32