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的哪个子类

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏