泛型返回类型的用途是什么

时间:2014-11-06 09:09:10

标签: java

请参阅以下代码。在下面的方法中,在方法返回类型之前,这些参数<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>做什么?

2 个答案:

答案 0 :(得分:4)

它们是方法中使用的泛型类型参数的声明。

与方法名称前面的boolean关键字表示方法返回布尔值的方式相同,这些参数表示类型参数KV在方法。

在方法的参数列表中可以看到它们时,必须在开头列出它们似乎有点多余,但请参阅下面的Jesper评论。

答案 1 :(得分:1)

在此上下文中,它用于声明泛型类型以定义泛型方法。在运行时,将根据方法调用推断这些类型。这样可以保证某种类型的安全性。在您的示例中,我们强制p1和p2为相同类型的对。