泛型中使用通配符的两种形式:
-
子类型限定:<? extends xxx>
-
超类型限定:<? super xxx>
举个栗子,总共存在三个类:
-
Pire<T>
-
Employee
-
Manager
//类Manager enxtends 类Employee
//存在一个方法:
public static void test(Pire<Employee> p){}
//在调用的时候
test(pire<Employee>) //true
test(pire<Manager>) //false
所以,在这个时候就需要用到子类型限定,在定义方法的时候
public static void test(Pire<? extends Employee>){}
超类型限定也同理。