请参阅以下代码。在下面的方法中,在方法返回类型之前,这些参数<K,V>
的用法究竟是什么?
<K, V> boolean
详细代码如下:
public class Util {
// Generic static method
public static <K, V> boolean compare(Pair<K, V> p1, Pair<K, V> p2) {
return p1.getKey().equals(p2.getKey()) &&
p1.getValue().equals(p2.getValue());
}
}
并且我们将其调用为boolean same = Util.<Integer, String>compare(p1, p2);
:这里我们应该对<Integer, String>
做什么?
答案 0 :(得分:4)
它们是方法中使用的泛型类型参数的声明。
与方法名称前面的boolean
关键字表示方法返回布尔值的方式相同,这些参数表示类型参数K
和V
在方法。
在方法的参数列表中可以看到它们时,必须在开头列出它们似乎有点多余,但请参阅下面的Jesper评论。
答案 1 :(得分:1)
在此上下文中,它用于声明泛型类型以定义泛型方法。在运行时,将根据方法调用推断这些类型。这样可以保证某种类型的安全性。在您的示例中,我们强制p1和p2为相同类型的对。