一个泛型类(generic class)就是具有一个或多个类型变量的类。本章使用一个简单的Pair类作为例子。对于这个类来说,我们只关注泛型,而不会为数据存储的细节烦恼:

    1. public class Pair<T> {
    2. private T first;
    3. private T second;
    4. public Pair() { first = null; second = null; }
    5. public Pair(T first, T second) { this.first = first; this.second = second; }
    6. public T getFirst() { return first; }
    7. public T getSecond() { return second; }
    8. public void setFirst(T newValue) { first = newValue; }
    9. public void setSecond(T newValue) { second = newValue; }
    10. }

    Pair 类引入了一个类型变量(类型参数) T,用尖括号(<>)括起来,并放在类名的后面。泛型类可以有多个类型变量:

    1. public class Pair<T, U> {...}

    类型变量使用大写形式,且比较短。在 Java 库中,常用的类型变量有:

    • E - Element
    • K - Key
    • N - Number
    • T - Type
    • V - Value
    • S,U,V etc. - 2nd, 3rd, 4th types

    就可以用具体的类型替换类型变量:

    1. Pair<String> p = new Pair<>();
    2. Pair<String> p = new Pair<>(String, String);
    3. String getFirst();
    4. String getSecond();
    5. void setFirst(String);
    6. void setSecond(String);