泛型

作者: QTong | 来源:发表于2020-07-09 21:58 被阅读0次

官网解释1
官网解释2

定义:

泛型是一种类型约束,于 J2SE5.0 中引入,简而言之,泛型在定义类,接口和方法时使类型(类
和接口)成为参数。与方法声明中使用的更熟悉的形式参数非常相似,类型参数为您提供了一种使用
不同输入重复使用相同代码的方法。区别在于形式参数的输入是值,而类型参数的输入是类型。
JDK 是在编译期对类型进行检查,提供了编译时类型的安全性。它为集合框架增加了编译时类型
的安全性,并消除了繁重的类型转换工作

规则

原理 :

complierng 中检测 对象类型不对,class文件没有泛型 被擦除了,
执行的时候没有语义
约束

  • 不可子类化 同时也不可父类化
    不可将 Person 对象 赋值给 Driver对象 ,反过来也是 编译报错
    <Obeject ><Person> <Driver> 堪称两个标识符号,complier使用 后就擦除了,class文件中 就没有了,运行时更没有了 ,更没有语义了,没有继承关系
  • 通配符
    • 无界<?>、
    • 上界<? extends Person>、
    • 下界<? super Person>
    • programer 类 界和 方法 返回值界
      add时只能向下转型;向上转型要强转;
      ???具有上界的通配符泛型只能get,不能add除null外的对象;
      ???具有下界的通配符泛型可以add,但get获取对象为object类型;

类型擦除

在编译的时候 将 泛型关键字擦除:
有界 替换为 第一边界,无界 替换为Object
桥接方法 ,堆污染? 没看懂

限制

  • 不能用简单类型来实例化泛型实例
  • 不能直接创建 类型参数 实例
  • 不能声明 静态属性 为泛型类型的 参数
  • 不能 create \catch\throw 参数化类型对象

相关文章

  • 泛型 & 注解 & Log4J日志组件

    掌握的知识 : 基本用法、泛型擦除、泛型类/泛型方法/泛型接口、泛型关键字、反射泛型(案例) 泛型 概述 : 泛型...

  • 【泛型】通配符与嵌套

    上一篇 【泛型】泛型的作用与定义 1 泛型分类 泛型可以分成泛型类、泛型方法和泛型接口 1.1 泛型类 一个泛型类...

  • 泛型的使用

    泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法 泛型类 泛型接口 泛型通配符 泛型方法 静态方法与...

  • Java 泛型

    泛型类 例如 泛型接口 例如 泛型通配符 泛型方法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型上下边...

  • 探秘 Java 中的泛型(Generic)

    本文包括:JDK5之前集合对象使用问题泛型的出现泛型应用泛型典型应用自定义泛型——泛型方法自定义泛型——泛型类泛型...

  • Web笔记-基础加强

    泛型高级应用 自定义泛型方法 自定义泛型类 泛型通配符? 泛型的上下限 泛型的定义者和泛型的使用者 泛型的定义者:...

  • 重走安卓进阶路——泛型

    ps.原来的标题 为什么我们需要泛型? 泛型类、泛型接口和泛型方法(泛型类和泛型接口的定义与泛型方法辨析); 如何...

  • Kotlin泛型的高级特性(六)

    泛型的高级特性1、泛型实化2、泛型协变3、泛型逆变 泛型实化 在Java中(JDK1.5之后),泛型功能是通过泛型...

  • Java 19-5.1泛型

    泛型类定义泛型类可以规定传入对象 泛型类 和泛型方法 泛型接口 如果实现类也无法确定泛型 可以在继承类中确定泛型:

  • 【Swift】泛型常见使用

    1、Swift泛型4种 泛型函数泛型类型泛型协议泛型约束 2、泛型约束3种 继承约束:泛型类型 必须 是某个类的子...

网友评论

      本文标题:泛型

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