首页 > 编程语言 >Java 泛型理解

Java 泛型理解

时间:2024-11-15 23:44:36浏览次数:3  
标签:元素 Java 编译 Object 集合 理解 泛型 添加

     泛型

        泛型是JDK5之后引入的新特性,提供了编译时类型安全检测机制。

        在泛型引入之前:

        类似List集合这种存储数据的类可以传递任何数据类型,因为其中需要的类是Object。

List.add(1)
List.add("String")
List.add("Student")

         看似是好处,不必在意集合中到底需要什么内容,什么内容都可以添加,但其实并非如此。

        集合中什么类型的元素都可以添加,添加确实十分方便;但使用起来就十分不方便,因为其中的类全部是Object;所以说从集合中取出的都是Object类的元素;但正因为Object是顶级父类,
父类无法使用子类中特有的方法,所以说想要使用这些子类中的特有方法,需要向下转型。

但是由于集合中什么元素都存在,完全不知道什么类型是什么类型,所以说无法正确的向下转型,运行时就会遇到问题,抛出异常(转型异常)。

        泛型在JDK之后引入之后,就限定了该集合中只能存在元素类型,如ArrayList<String>,那么这个ArrayList就只能添加String类型的元素。假如在ArrayList<String>中添加了非String的元素,那么就会直接编译时报错,就可以把运行时遇见的问题提前到了编译时。

     泛型擦除

        在 Java 中,泛型信息主要是在编译阶段起作用,当代码编译成字节码后,泛型相关的类型信息会被擦除。如ArrayList<String>,在编译时
会检查添加到集合内的元素是否是String,若不是则报错;但是在编译为字节码文件之后,泛型信息就会被擦除,集合中的元素被“擦除”为Object类型,
但是因为限定了泛型,所以说在获取元素的时候,会按照泛型对Object类进行转型,不会发生错误


        

标签:元素,Java,编译,Object,集合,理解,泛型,添加
From: https://blog.csdn.net/Aishangyuwen/article/details/143810139

相关文章

  • 深入浅出:Java 中的经典排序算法详解与实现
    文章目录1.冒泡排序(BubbleSort)基本思路详细步骤Java实现2.插入排序(InsertionSort)基本思路详细步骤Java实现3.选择排序(SelectionSort)基本思路详细步骤Java实现4.快速排序(QuickSort)基本思路详细步骤Java实现5.归并排序(MergeSort)基本思路......
  • 基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现二
    一、前言介绍:免费学习:猿来入此1.1项目摘要随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,宠物的数量增长也带来了一系列问题,如流浪宠物数量的增加、宠物健康管理的缺失以及宠物领养收养信息的不透明等。这些问题不仅影响了宠物的生存状况,也给社会带来了一定......
  • 基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现一
    一、前言介绍:免费学习:猿来入此1.1项目摘要随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,宠物的数量增长也带来了一系列问题,如流浪宠物数量的增加、宠物健康管理的缺失以及宠物领养收养信息的不透明等。这些问题不仅影响了宠物的生存状况,也给社会带来了一定......
  • java常用类的练习题
    输入三个字名字的拼音每个字的拼音之间用空格隔开,形式如下:输入—>Javadingzhen输出—>zhen,Java.D/***@AuthorJava顶针*@Version1.0*/publicclassTest03{publicstaticvoidmain(String[]args){Stringname="wangqingshan";p......
  • java常用类的练习题
    输入一个字符串,对里面的字符类型进行统计packagechapter13.Test;/***@AuthorJava顶针*@Version1.0*/publicclassTest04{//判断字符串里包含多少个大、小写字母、数字publicstaticvoidmain(String[]args){Stringname="ASefsfjklAAEf56......
  • Java基础:内部类
    欢迎来到“雪碧聊技术”CSDN博客!在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将不断探索Java的深邃世界,分享最新的技术动态、实战经验以及项目......
  • Java基础夯实——1. 6 Java泛型
    Java的泛型概念Java的泛型(Generics是一种参数化类型的机制。它允许在定义类、接口和方法时使用类型参数,这些类型参数可以在使用该类、接口或方法时被具体的类型所替换。示例://一个简单的泛型类publicclassBox<T>{privateTvalue;publicvoidsetVal......
  • 【Java的JIT技术】
    JIT(JustInTime)编译器,也称即时编译器,主要在JVM运行时期动态的做一些优化提升代码的运行速度和效率。大家都知道,jvm运行时是通过解释器将每一条class字节码指令翻译成机器指令去执行。JIT则不同,它会在jvm运行时期动态的将热点代码编译成机器指令,缓存下来.之......
  • Springboot 整合 Java DL4J 打造金融风险评估系统
    ......
  • 大数据学习15之Scala集合与泛型
    1.概述        大部分编程语言都提供了数据结构对应的编程库,并称之为集合库(CollectionLibrary),Scala也不例外,且它还拥有以下优点:易用:灵活组合运用集合库提供的方法,可以解决大部分集合问题简洁:拜类型推断和函数式编程所赐,帮助程序员写出更简洁,更优雅的代码安全:......