定义简单泛型类

一个泛型类(generic class)就是具有一个或多个类型变量的类,泛型类可以看作是普通类的工厂。下面以一个简单的Pair类作为例子。

public class Pair<T> {
private T first;
private T second;
public Pair() {
this.first = null;
this.second = null;
}
public Pair(T first, T second) {
this.first = first;
this.second = second;
}
public T getFirst() {
return this.first;
}
public T getSecond() {
return this.second;
}
public void setFirst(T first) {
this.first = first;
}
public void setSecond(T second) {
this.second = second;
}
}

Pair类包含一个类型变量T,用尖括号括起来(Pair),并放在类名的后面。泛型类也可以包含多个类型变量,例如,可以重新定义Pair类,使first和second域使用不同的类型:

public class Pair<T,U> {
private T first;
private U second;
public Pair() {
this.first = null;
this.second = null;
}
public Pair(T first, U second) {
this.first = first;
this.second = second;
}
public T getFirst() {
return this.first;
}
public U getSecond() {
return this.second;
}
public void setFirst(T first) {
this.first = first;
}
public void setSecond(U second) {
this.second = second;
}
}

note

一般类型变量使用大写形式,且比较短。在Java库中,使用E表示集合的元素类型,K和V分别表示表的关键字与值的类型。T(需要时还可以用临近的字母S和U)表示“任意类型”。