从有效的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