• 【Java】<泛型>,在编译阶段约束操作的数据结构,并进行检查。


    在这里插入图片描述

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
    个人主页:.29.的博客
    学习社区:进去逛一逛~

    在这里插入图片描述

    JAVA泛型



    泛型介绍

    • ①泛型:Java泛型是一种强大的编程概念,可用于编写可重用、类型安全和通用的代码。泛型在Java中引入了类型参数,允许开发者编写可以处理不同数据类型的通用类、接口和方法。是JDK5中引入的特性,总而言之就是:可以在编译阶段约束操作的数据结构,并进行检查
    • ②泛型格式<数据类型>
    • ③泛型只能支持: 引用数据类型

    使用泛型的好处

    • ①统一数据类型。(确定泛型后,传递数据时,可传递指定类型或其子类类型数据。不能传递基本数据类型。)

    • ②泛型允许开发者在编译时捕获类型错误,而不是在运行时。把运行时期的问题提前到编译期间,避免了强制类型转换可能出现的异常,这提高了代码的质量和可维护性。

    • 注意:如果我们没有通过泛型给集合指定类型,默认所有的数据都是Object类型,此时可以往集合中添加任意的数据类型,**弊端:**此时我们在获取到集合的数据时,无法使用他的特有行为(无法访问其特有的方法函数)。


    真相

    • Java中的泛型是伪泛型
    • 它只有在编译阶段生效,以检查并确定类型。
    • 当数据存入集合后,进入到运行阶段,存入的数据依旧是当作Object类型来处理。在获取时又根据泛型来进行强制转换。

    泛型使用

    • 使用在类后面:

      • 泛型类

      • 适用场景:当一个类中,某个变量的数据类型不确定,可定义带泛型的类,做到约束,检查变量类型的作用。

      • 格式:修饰符 class 类名<类型>{}

      • ArrayList<String> stringList = new ArrayList<>();
        ArrayList<Integer> intList = new ArrayList<>();
        
        • 1
        • 2
    • 使用在方法上:

      • 泛型方法

      • 使用场景:方法中形参类型不确定时,可以使用类名后面定义的泛型,即泛型类,当然也可以也可以在方法上定义泛型(仅本方法使用)。

      • 格式:修饰符 <类型>返回值类型 方法名(类型 类型名){}

      • public <T> T getFirstElement(List<T> list) {
            return list.get(0);
        }
        
        • 1
        • 2
        • 3
    • 用在接口后面:

      • 泛型接口
      • 格式:修饰符 interface 接口名<类型>{}
      • 如何使用一个带泛型的接口:
        • ①实现类给出具体类型。
        • ②实现类眼神泛型,创建对象时再确定。

    泛型的继承和通配符

    • 泛型不具备继承性,但是数据具备继承性。
    • 通配符? —— 通配符是一种用于表示不确定类型的类型参数。? 用于表示通配符。通配符可以在方法参数中用于接受多个类型的参数
      • 上限通配符:? entends E:可以传递E或者E所有的子类类型。
      • 下限通配符:? super E:可以传递E或者E所有的父类类型。



    在这里插入图片描述

  • 相关阅读:
    Google Earth Engine(GEE)——显示和下载影像出现的问题
    Spring Boot配置多个日志文件记录不同类日志示例
    Springboot毕设项目基于Java的12306售票系统的设计与实现uq5mf(java+VUE+Mybatis+Maven+Mysql)
    数据结构之顺序表及其实现!
    E-R图
    【已解决】Vue3+Element-plus中icon图标不显示的问题
    软件测试---
    2024/3/5打卡最长上升子序列**----线性DP,贪心,单调栈
    GNU链接脚本详解
    React生命周期理解
  • 原文地址:https://blog.csdn.net/ebb29bbe/article/details/133976062