美文网首页
【The Java™ Tutorials】【Generics】3

【The Java™ Tutorials】【Generics】3

作者: Ppian | 来源:发表于2018-05-14 11:37 被阅读0次

Generic methods are methods that introduce their own type parameters. This is similar to declaring a generic type, but the type parameter's scope is limited to the method where it is declared. Static and non-static generic methods are allowed, as well as generic class constructors.

The syntax for a generic method includes a list of type parameters, inside angle brackets, which appears before the method's return type.

如何定义泛型方法:

public class Util {
    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());
    }
}

public class Pair<K, V> {

    private K key;
    private V value;

    public Pair(K key, V value) {
        this.key = key;
        this.value = value;
    }

    public void setKey(K key) { this.key = key; }
    public void setValue(V value) { this.value = value; }
    public K getKey()   { return key; }
    public V getValue() { return value; }
}

如何调用泛型方法:

Pair<Integer, String> p1 = new Pair<>(1, "apple");
Pair<Integer, String> p2 = new Pair<>(2, "pear");
boolean same = Util.<Integer, String>compare(p1, p2);

上面的例子中,我们显式提供了类型,但是,我们也可以不这么做,而是让编译器自己去推断类型:

Pair<Integer, String> p1 = new Pair<>(1, "apple");
Pair<Integer, String> p2 = new Pair<>(2, "pear");
boolean same = Util.compare(p1, p2);

关于类型推断,后面会有单独的章节来详细讲解。

相关文章

网友评论

      本文标题:【The Java™ Tutorials】【Generics】3

      本文链接:https://www.haomeiwen.com/subject/hejelftx.html