美文网首页
Java泛型解析

Java泛型解析

作者: jianfengZheng | 来源:发表于2019-04-23 09:35 被阅读0次

4、有界泛型

<? extends T>:是指 “ 上界通配符 (Upper Bounds Wildcards) ”

<? super T>:是指 “ 下界通配符 (Lower Bounds Wildcards) ”

如 List<? extends T> 大家以为元素为 T以及其所有子类的对象 的List。其实不是。元素类型 仅指T的某一个不确定的子类,是单一的一个不确定类,没有具体哪个类。因此不能插入一个不确定的。

List<? super T> 大家以为元素为 T以及其父类的对象 的List。其实不是,元素类型 仅指T的某一个不确定的父类,是单一的一个不确定类(只确定是T的父类),没有具体哪个类。

因此:

不能往List<? extends T>中插入任何类型的对象。唯一可以保证的是,你可以从中读取到T或者T的子类。

可以往List<? super T>中插入T或者T子类的对象,但不可以插入T父类的对象。可以读取到Object或者Object子类的对象(你并不知道具体的子类是什么)。

如果频繁支持读取数据,不要求写数据,使用<? extends T>。即生产者 使用 <? extends T>

如果频繁支持写入数据,不特别要求读数据,使用<? super T>。即消费者 使用 <? super T>

如果都需要支持,使用<T>。

相关文章

  • Java泛型教程

    Java泛型教程导航 Java 泛型概述 Java泛型环境设置 Java泛型通用类 Java泛型类型参数命名约定 ...

  • java 泛型解析

    Java 泛型 1、泛型的精髓是什么 2、泛型方法如何使用 概述: 泛型在java中具有重要地位,在面向对象编程模...

  • Java泛型解析

    4、有界泛型 :是指 “ 上界通配符 (Upper Bounds Wildcards) ...

  • java泛型解析

    为什么需要泛型?如果我们写的程序, 都用固定类型的话,那么当类型需要发生变化的时候,我们很难去做扩容。 比如,一个...

  • JDK1.7 ConcurrentHashMap

    详细的解释 ↓漫画:什么是ConcurrentHashMap?Java泛型底层源码解析--ConcurrentHa...

  • 第二十八课:泛型

    泛型出现之前 泛型出现之后 Java深度历险(五)——Java泛型

  • Kotlin 泛型

    说起 kotlin 的泛型,就离不开 java 的泛型,首先来看下 java 的泛型,当然比较熟悉 java 泛型...

  • java泛型中类型擦除的一些思考

    java泛型 java泛型介绍 java泛型的参数只可以代表类,不能代表个别对象。由于java泛型的类型参数之实际...

  • Java泛型

    参考:Java知识点总结(Java泛型) 自定义泛型类 自定义泛型接口 非泛型类中定义泛型方法 继承泛型类 通配符...

  • Java泛型—Java语法糖,只在编译有作用,编译后擦出泛型

    Java泛型—Java语法糖,只在编译有作用,编译后擦出泛型 在代码进入和离开的边界处,会处理泛型 Java泛型作...

网友评论

      本文标题:Java泛型解析

      本文链接:https://www.haomeiwen.com/subject/kbemgqtx.html