java泛型里面的<? extends > <? super> <?> 有通俗易懂的方法理解吗?求大神指教!

看java编程思想,这部分纠结了有一段时间了,到现在都没有头绪!

阅读 4.4k
3 个回答

a super b a是b的父
a extends b a是b 的后代
? 不确定类型

? super T 表示一个特定的类,这个类可能是T,也可能是T的父类或者超类,甚至OTject

  • 你可以将T或者T的子类的实例赋值给这个"变量",因为T或者T的子类 肯定是一个OTject(或者其他任何T的超类)

  • 但你无法将这个"变量"赋值给其他"变量",因为无法确定这个"变量"的具体类型

? extends T 表示一个特定的类,这个类可能是T,也可能是T的任意子类

  • 你可以把这个"变量"赋值给任意用T或者T的超类声明的"变量"

  • 但你无法为这个"变量"赋值,因为根本无法知道这个"变量"的类到底是T还是T的哪个子类

推荐问题
宣传栏