通配符类型介绍
泛型类型是固定的,不能实现多态,也就是说泛型的类型变量没有继承关系
例如:public static void printBuddies(Pair<Employee> p) 就不能传入Pair<Manager> p 对象 因为Pair<Employee> p和Pair<Manager> p不属于继承关系 这样就限制了多态的使用,为此需要通配符类型
Pair<? extends Employee>表示任何泛型Pair类型,它的类型参数是Employee的子类
传入参数是向下兼容的,返回值是向上兼容,这和父类引用子类对象是相关的
通配符限定和类型变量限定十分类似,但是还有一个附加的能力,即可以指定一个超类型限定 ? super Manager 这个通配符限制为Manager的所有超类型
直观地讲,带有超类型限定的通配符可以向泛型对象写入,带有子类型限定的通配符可以向泛型对象读取


浙公网安备 33010602011771号