List<? extends > list1 和 List<? super > list2

  刚才看了一些博文,这里说一下自己的理解。

  List <? extends T>   list1 这个基本意思是  所有参数类型是T 子类的list 都能直接赋值给list1.但是由于 list1没有指定自己具体是哪个元素,所以不能直接使用add 方法。之只能通过get 方法取list中,赋值给list1 之前已经有的元素。

List<? super T> list2    能把所有参数类型是T的父类的list 直接赋值给list2, 由于已经确定了这个list2最小的边界就是T ,所以这个list2 在赋值之后还能放T或者T的子类。list2 取值的时候,因为不知道元素是T的哪一个父类,所以取出来的元素只能是object 类型的。

参考文章:https://www.cnblogs.com/chenxibobo/p/9655236.html

                 https://www.cnblogs.com/drizzlewithwind/p/6100164.html

   谢谢以上博主

原文地址:https://www.cnblogs.com/prader6/p/13850960.html