Java™ 教程(泛型方法)

35次阅读

共计 938 个字符,预计需要花费 3 分钟才能阅读完成。

泛型方法
泛型方法是引入其自己的类型参数的方法,这类似于声明泛型类型,但类型参数的范围仅限于声明它的方法,允许使用静态和非静态泛型方法,以及泛型类构造函数。
泛型方法的语法包括类型参数列表,在尖括号内,它出现在方法的返回类型之前,对于静态泛型方法,类型参数部分必须出现在方法的返回类型之前。
Util 类包含一个泛型方法 compare,它比较两个 Pair 对象:
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);
此功能称为类型推断,允许你将泛型方法作为普通方法调用,而无需在尖括号之间指定类型,本主题将在下一节“类型推断”中进一步讨论。

上一篇:泛型原始类型

正文完
 0