`
zybing
  • 浏览: 446467 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于泛型中<? extends A> 和 <? super A>的差别

阅读更多

天下文章一大抄, 继续抄

 

来源:  百度上搜索"泛型 super extends" , 出来一大堆 "泛型中super与extends的形象解释", 也不知道哪个是原创,也就不炒了,反正大家一搜索, 到处都是;

 

理解:

 

定义:

List<? extends A>  alist  = new ArrayList<TypeA>();

  这个说明TypeA是 A的子类, 从alist中获取的元素,转换成A是没有问题的;

  但是TypeA到底是A的哪一层子类, 这个就不知道了, 如果添加一个元素进去, 譬如

  alist.add(element):

     这个element和TypeA 的层次关系是否对就不知道了, 所以无法添加;

 

 

List<? super A> alist = new ArrayList<TypeA>();

    如果用了super来修饰,  说明TypeA是A的父类, 所以只要是A的子类添加进来,那都没问题,都可以;

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Java中List<? extends T>与List<? super T>的区别(值得珍藏)

    这里的 &lt;T&gt; 表示泛型,T 表示泛型中装载的类型为T类型,等到需要的时候,我们可以具体这个 T。我们在使用动态数组实现 ArrayList 的时候,如果希望这个 ArrayList 不仅仅支持一个类型的话,我们可以给这个 ArrayList...

    Java泛型中? super T和? extends T的区别

    extends T&gt;表示包括T在内的任何T的子类,下面我们详细分析一下两种通配符具体的区别。  extends  List&lt;? extends Number&gt; foo3的通配符声明,意味着以下的赋值是合法的:  // Number "extends" Number (in...

    泛型中? super T和? extends T的区别

    经常发现有List&lt;? super T&gt;、Set&lt;? extends T&gt;的声明,是什么意思呢?&lt;? super T&gt;表示包括T在内的任何T的父类,&lt;? extends T&gt;表示包括T在内的任何T的子类,下面我们详细分析一下两种通配符具体的区别。

    \java超强笔记(超级经典)

    &lt;E extends Numner&comparator&gt; 类名&接口,表示E继承Numner类实现comparator接口 &lt;?&gt; 泛型通配符表示任意类型,仅用于传参 &lt;? extends 类型&gt; 表示这个类型可以是该类或者该类的子类。 &lt;? super 类型&gt; ...

    泛型dao 泛型dao 泛型dao

    泛型daoimpl :GenericDaoImpl&lt;T, ID extends Serializable&gt; implements GenericDao&lt;T, ID&gt; 必须提供的构造方法,以便创建实例的时候就知道具体实体的类型。 daoimpl :PersonDAOImpl extends GenericDaoImpl...

    泛型中extends和super的区别Java系列2021.pdf

    泛型中extends和super的区别Java系列2021.pdf

    Android代码-TypeBuilder

    super String&gt; Type type = TypeBuilder .newInstance(List.class) .addTypeParamSuper(String.class) .build(); Example for List&lt;? extends CharSequence&gt; Type type = TypeBuilder .newInstance(List....

    JDK 1.5的泛型實現(Generics in JDK 1.5)

    &lt;&gt;)的用法和 C++完全相同,角括號之 內的指定型別,就是同質容器的元素型別,如圖 1。 ArrayList&lt;String&gt; strList = new ArrayList&lt;String&gt;(); strList.add("zero"); strList.add("one"); strList.add("two...

    Java泛型extends及super区别实例解析

    主要介绍了Java泛型extends及super区别实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    虚拟数据层 Struts2、Hibernate、Spring整合的泛型DAO Version 2010.9.27

    泛型daoimpl :GenericDaoImpl&lt;T, ID extends Serializable&gt; implements GenericDao&lt;T, ID&gt; 必须提供的构造方法,以便创建实例的时候就知道具体实体的类型。 daoimpl :PersonDAOImpl extends GenericDaoImpl...

    Kotlin中协变、逆变和不变示例详解

    super T&gt; 通配符型变约束,而是采用类似 C# 的 in,out 用于支持协变和逆变,这同时避免了处理子类型化,父类化的问题(即Java泛型中典型的List&lt;T&gt; 不是 List&lt;Object&gt;的子类型的问题); 基本的泛型语法可以...

    存取原则和PECS法则

    泛型存取原则和PECS法则 总结泛型中的“ ? extends” 和“? super” 通配符的特征,我们可以得出以下结论: 如果你想从一个数据类型里获取数据,使用 ? extends 通配符 如果你想把对象写入一个数据结构里,使用 ? ...

    Java 高级特性.doc

    4、泛型的参数类型可以使用extends语句,例如&lt;T extends superclass&gt;。习惯上成为“有界类型”。 5、泛型的参数类型还可以是通配符类型。例如Class&lt;?&gt; classType = Class.forName(java.lang.String); 例子: a..使用...

    Java泛型深入学习和总结 看这一篇就足够!

    四 泛型中的约束和局限性 4.1 不能用基本类型实例化类型参数 4.2 运行时类型查询只适用于原始类型 4.3 泛型类的静态上下文中类型变量失效 4.4 不能创建参数化类型的数组 4.5 不能实例化类型变量 4.6 不能捕获泛型类...

    安卓java读取网页源码-interview:安卓面试

    安卓java读取网页源码 Android-Interview Java 基础 父类的静态方法能否被子类重写? 静态属性和静态方法是否可以被继承?...泛型中 extends 和 super 的区别? 对 Java 的异常体系的了解? 对解析与分派的了解?

    【大厂面试题总结】JavaSE面试题总结详细教程

    泛型中extends和super的区别 内部类的理解 深入理解Java的反射机制 深入理解Java异常体系 谈谈NIO的理解 谈一谈对JUC的理解 ArrayList的底层原理 HashMap的底层原理 iava单例模式详解 JAVA的内存结构 java队列 Java...

    【大厂面试题总结】JavaSE面试题合集及其答案,基本包括javaSE所有知识点和详细解释

    泛型中extends和super的区别 内部类的理解 深入理解Java的反射机制 深入理解Java异常体系 谈谈NIO的理解 谈一谈对JUC的理解 ArrayList的底层原理 HashMap的底层原理 iava单例模式详解 JAVA的内存结构 java队列 Java...

    廖雪峰 Java 教程.doc

    泛型和反射 集合 Java集合简介 使用List 编写equals方法 使用Map 编写equals和hashCode 使用EnumMap 使用TreeMap 使用Properties 使用Set 使用Queue 使用PriorityQueue 使用Deque 使用Stack 使用...

    史上最详细的【一线大厂面试题】详解及其答案

    2、泛型中extends和super的区别 3、内部类的理解 4、深入理解Java的反射机制 5、深入理解Java异常体系 6、谈谈NIO的理解 7、谈一谈对JUC的理解 8、ArrayList的底层原理 9、HashMap的底层原理 10、Java单例模式详解 ...

Global site tag (gtag.js) - Google Analytics