一个泛型类(generic class)就是具有一个或多个类型变量的类。本章使用一个简单的Pair类作为例子。对于这个类来说,我们只关注泛型,而不会为数据存储的细节烦恼:
public class Pair<T> {
private T first;
private T second;
public Pair() { first = null; second = null; }
public Pair(T first, T second) { this.first = first; this.second = second; }
public T getFirst() { return first; }
public T getSecond() { return second; }
public void setFirst(T newValue) { first = newValue; }
public void setSecond(T newValue) { second = newValue; }
}
Pair 类引入了一个类型变量(类型参数) T,用尖括号(<>
)括起来,并放在类名的后面。泛型类可以有多个类型变量:
public class Pair<T, U> {...}
类型变量使用大写形式,且比较短。在 Java 库中,常用的类型变量有:
- E - Element
- K - Key
- N - Number
- T - Type
- V - Value
- S,U,V etc. - 2nd, 3rd, 4th types
就可以用具体的类型替换类型变量:
Pair<String> p = new Pair<>();
Pair<String> p = new Pair<>(String, String);
String getFirst();
String getSecond();
void setFirst(String);
void setSecond(String);