• Java泛型中的T与?


    单独的T 代表一个类型 ,而 Class代表这个类型所对应的类, Class<?>表示类型不确定的类

     E - Element (在集合中使用,因为集合中存放的是元素)
     T - Type(Java 类)
     K - Key(键)
     V - Value(值)
     N - Number(数值类型)
     ? -  表示不确定的java类型

    举例说明: 
    Set 表示 集合里 是   T类的实例 
    List 表示  集合里 是  E类的实例 
    List 表示 集合里的对象类型不确定,未指定 
    List 同 List 是一样的。 

    泛型的作用: 
    1、用泛型: 
    Java代码
    List list=new ArrayList();  
    T t=list.get(0);  

    2、不用泛型: 
    Java代码 
    List  list=new ArrayList();  
    T t=(T)list.get(0);

    自定义泛型接口、泛型类和泛型方法

    ***泛型类型在逻辑上看以看成是多个不同的类型,实际上都是相同的基本类型。

    类型通配符

    类型通配符一般是使用 ? 代替具体的类型实参。注意了,此处是类型实参,而不是类型形参!且Box在逻辑上是Box、Box...等所有Box<具体类型实参>的父类。由此,我们依然可以定义泛型方法,来完成此类需求。

    类型通配符上限通过形如Box形式定义,相对应的,类型通配符下限为Box形式,其含义与类型通配符上限正好相反.
     

    • List表示该集合中存在的都是类型T的子类,包括T自己
    • List表示该集合中存的都是类型T的父类,包括T自己
    • 1、A extends B ,则 B 是A 的父类或者祖先

      若参数为T  意味着子类是不确定的,因此只能读取数据,而不能插入数据,即get()和set()方法中只能是get有效

      2、A super B,   则A是B 的父类或者祖先

      若参数为T  意味着父类是不确定的,因此只能插入数据,而不能读取数据,即get()和set()方法中只能是set有效

  • 相关阅读:
    MySQL的视图
    《对比Excel,轻松学习Python数据分析》读书笔记------数据运算
    cmake中配置了工具链,命令行工具可以找到,但是clion中找不到
    Apache Doris 基于 Workload Group 的负载隔离能力解读|Deep Dive
    第一章 计算机网络概述
    一文了解微服务低代码实现方式
    (二)k8-集群创建
    Pygame入门
    0.Web 后端 开发
    QT:QSS自定义 QCheckBox实例
  • 原文地址:https://blog.csdn.net/qq_63775204/article/details/126550974