通配符类型介绍

泛型类型是固定的,不能实现多态,也就是说泛型的类型变量没有继承关系

例如:public static void printBuddies(Pair<Employee> p)   就不能传入Pair<Manager> p 对象  因为Pair<Employee> p和Pair<Manager> p不属于继承关系   这样就限制了多态的使用,为此需要通配符类型

Pair<? extends Employee>表示任何泛型Pair类型,它的类型参数是Employee的子类

传入参数是向下兼容的,返回值是向上兼容,这和父类引用子类对象是相关的

通配符限定和类型变量限定十分类似,但是还有一个附加的能力,即可以指定一个超类型限定  ? super Manager     这个通配符限制为Manager的所有超类型

直观地讲,带有超类型限定的通配符可以向泛型对象写入,带有子类型限定的通配符可以向泛型对象读取

 

posted @ 2016-11-20 16:11  下雨天MJ  阅读(124)  评论(0)    收藏  举报