有人可以解释这种通用方法

时间:2015-11-02 01:52:35

标签: java generics methods return-type

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之前。

1 个答案:

答案 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方法的编译时错误,指出类型不匹配。