?,?扩展人,?super人,明白了:给这些泛型对象赋值的时候,可以传入范围内的任意类型,但是取出来的时候,接收到的类型必须是范围内的最大值。其实是一种“是”的关系,等号右边一定是“是”左边。例如,列表obj=newList();因为Student一定是“是”“?extendsPeople”,所以这样做是没有问题的。人peo=obj.get(0);这里,不管右边出来的是People的子类“人”,那么“人的子类”一定是“人”,不管什么样的人是人,逻辑都是对的,所以没问题像这样写Studnetstu=obj.get(0);这里不一定是,因为右边是“People的任意子类”,那么可能是老师,而老师不是“一个”学生。调用方法时,实际上是将实参赋值给了形参,即形参=实参;那么参照右边“是”的逻辑来分析。
Thinkjavawildcards-关于通配符的问号相关文章