在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的另一个具体类型。

10-06 05:32
查看更多