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());
}
通过我对泛型的研究,我还没有找到一个答案来解释返回类型之前泛型的功能是什么,如
<K, V>
出现在boolean
之前。
答案 0 :(得分:0)
泛型强制执行类型安全,同时允许所使用的类型是调用者指定的任何类型。
在这种情况下,compare方法需要两个Pair实例。 Pair类本身包含2个实例。但是什么数据类型?这是K和V指定的内容。
因此,要在包含字符串和int的Pair对象上调用此方法,我将执行以下操作
Pair p1 = new Pair<string, int>("hi", 1);
Pair p2 = new Pair<string, int>("bye", 2);
instance.compare(p1, p2);
如果两个Pair实例具有不同类型的成员,那么您将收到compare
方法的编译时错误,指出类型不匹配。