一.什么是泛型
泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
二.泛型定义
当指定一个泛型类时,类的声明则包含了一个或多个类型参数,这些参数被放在类名后面的一对尖括号内。
public class User<T, Y, Z> {
private T t;
private Y y;
private Z z;
public Z setZ(Z z) {
return z;
}
public static void main(String[] args) {
User user = User.of();
System.out.println(user.setZ(1));
}
}
泛型接口同理
public interface UserInterface<T, B> {
T testT(T t);
B testB(B b);
}
泛型接口的实现可以是泛型,也可以不是泛型
public class concreteclass implements UserInterface<String,String>//是可行的
public class absclass<K,V> implements UserInterface<K,V>
三.泛型的通配符
通配符
在2.4中讲到数组具有协变性,但是泛型集合不具有协变性。使用通配符来弥补这个不足