泛型不可变性:
泛型类:
class Parent{}
class Child extends Parent{}
class SubChild extends Child{}
class Student<T>{}
public static void main(String[] args) {
//泛型的不可变性
Student<Child> s = new Student<Child>();
//Student<Child> s1 = new Student<Parent>();
//Student<Child> s2 = new Student<SubChild>();
}
注释掉的s1和s2都是错误的。
泛型下界:
关键字super,可以是自己本身或父类
//泛型通配符,下界(下限)
public static void test(Class<? super Child> c){
System.out.println(c.getName());
}
泛型上界:
关键字extends,可以是自己本身或子类
public static void test(Class<? extends Child> c){
System.out.println(c.getName());
}