美文网首页
Java泛型

Java泛型

作者: 星落尘 | 来源:发表于2020-02-19 16:08 被阅读0次

一  为什么要用泛型

            泛型主要有两个好处:

                   编译时类型安全;

                    代码复用

二 泛型使用

        泛型参数,泛型接口:被实现或继承后可以继续使用泛型 或给出类型

        泛型方法:方法语句中声明<T> 才是泛型方法

    Ps  传值泛型对象时,泛型对象的指定类的子类也可以使用

泛型限定符:extends  

指定泛型 必须继承或实现该类或接口,

可以有多个限定 &连接  只能有一个类,且放在第一位(单继承  多实现)

三 泛型的约束和局限性

无法实例化类型变量  无法使用 T t = new T();

静态域无法引用泛型变量(泛型方法可以使静态)原因  java 静态对象加载顺序

不允许使用 instanceof  关键字

泛型类数组可以定义,无法创建

extends  限制符 可以继承 Exception Throwable  但无法被捕获,但可以被抛出

无法捕获 可以抛出

四  继承规则

    泛型类型  不影响泛型类的 类型,

    泛型类型继承关系,无法影响泛型类的继承关系

通配符:

    extends  上界通配符,这个类或接口的本身或子类,限定传入参数类型的上界,用于安全的读取数据;原理:上界类型是确认的,可传子类  获取数据时  可强转为父类;

super  下界通配符,这个类或接口的父类或父类的父类,限定传入参数类型的下界,用于安全的写入数据;原理:下界类型确定 只能传父类,可以安全的转型

五 虚拟机实现泛型的原理

类型擦除:

    在进入JVM之前,会把泛型去掉,JVM中的泛型类 只是自身Class,泛型类会被替换为固定Class;

无限制泛型-------> Object

有限制泛型-------> 上界或下界

Ps :利用发射获取方法时,要注意泛型方法的类型被擦除成什么了

相关文章

  • Java泛型教程

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

  • 第二十八课:泛型

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

  • Kotlin 泛型

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

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

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

  • Java泛型

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

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

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

  • JAVA 核心笔记 || [xxx] 泛型

    泛型 JAVA 的参数化类型 称为 泛型 泛型类的设计 Learn12.java 运行

  • 简单回顾Java泛型之-入门介绍

    什么时候开始有了Java泛型?什么是Java泛型?为什么要引入Java泛型?什么时候用到了泛型?可不可以给泛型下一...

  • Kotlin 泛型

    Kotlin 支持泛型, 语法和 Java 类似。例如,泛型类: 泛型函数: 类型变异 Java 的泛型中,最难理...

  • JAVA-泛型

    JAVA-泛型 sschrodinger 2018/11/15 简介 泛型是Java SE 1.5的新特性,泛型的...

网友评论

      本文标题:Java泛型

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