泛型
- 泛型是JDK 5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许程序员在编译时监测非法的类型
- 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法
- 定义一个泛型类Pair
public class Pair<T> {
private T first;
private T second;
public Pair() {
}
public Pair(T first, T second){
this.first = first;
this.second = second;
}
public void setFirst(T first) {
this.first = first;
}
public void setSecond(T second) {
this.second = second;
}
public T getFirst() {
return first;
}
public T getSecond() {
return second;
}
}
public static void testPair1() {
Pair<String> pair = new Pair<>();
pair.setFirst("Bob");
pair.setSecond("Ed");
String first = pair.getFirst();
String second = pair.getSecond();
System.out.println("pair1: " + pair);
System.out.println("first: " + first);
System.out.println("second: " + second);
}
- 泛型接口:
在JDK中大量使用了泛型接口,比如我们经常使用的List、Map等。定义泛型接口与泛型类没有太大区别,只是当其他类、接口在实现、继承泛型接口时,如果没有明确泛型接口类型变量的具体参数,则其也必须一并声明定义类型变量
public interface Generator<T> {
public T next();
}