美文网首页
【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