泛型方法(Generic Method)是引入类型参数(Type Parameter)的方法。它类似声明泛型类型,但是类型参数的作用域仅限于自己。Java 允许静态和非静态的泛型方法,泛型构造方法也是。
泛型方法的语法:在尖括号内包含一个类型参数列表,出现在方法的返回值前面。
下面我们通过示例来展示泛型方法的声明和调用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| 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; } }
|
1 2 3
| Pair<Integer, String> p1 = new Pair<>(1, "apple"); Pair<Integer, String> p2 = new Pair<>(2, "pear"); boolean same = Util.compare(p1, p2);
|