在Java的此静态函数中,为什么必须在第1行中重复<K, V>
?
public static <K, V> HashMap<K, V> newInstance() {
return new HashMap<K, V>();
}
我明白为什么
HashMap<K, V>
是必需的,因为该函数返回一个具有通用类型K和V分别作为键和值的HashMap。但是,为什么函数签名中的第一个<K, V>
是必需的? 最佳答案
为了指示该方法是通用方法,使用/返回通用类型。如果不存在,则编译器将查找名为K的具体类型,以及名为V的另一个具体类型。