定义简单泛型类

一个泛型类(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 <t> ),并放在 类名的后面。泛型类也可以包含多个类型变量,例如,可以重新定义Pair类,使first和second域使用不同的类型: </t>

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)表示“任意类型”。