- 0
- 0
- 约2.59千字
- 约 77页
- 2026-02-07 发布于陕西
- 举报
Java泛型编程:泛型介绍;泛型的本质
为什么使用泛型
泛型使用方式;;在Java5之前使用Object类来表示任意类型的数据:编译时无法检查类型安全,容易引起运行时异常;需要进行类型转换,导致代码冗长且不够优雅。
Java泛型(generics)是JDK5中引入的一个新特性:可以在编译时确定数据类型,提高代码的可读性和可维护性
;泛型编程是Java软件工程师技能要求;泛型的本质是参数化类型:类型指定一个参数,使用时再指定此参数具体的值,这个类型就可以在使用时决定了。
;;Java标准库提供的ArrayList,是可变长度的数组,标准库ArrayList是泛型数组,如果ArrayList不使用泛型参数,我们看看会有什么问题。;这个ArrayList用于存储Integer数据类型会导致强制转型。
这个ArrayList用于存储Integer数据类型会导致不方便而且容易出错。;解决以上两个问题,可以单独写一个IntegerArrayList类,存入的必须是Integer,取出的也一定是Integer,不需要强制转型
这又会导致新的问题,如果要存储Long,还需要为Long单独编写一种ArrayList;如果要存储Double,还需要为Double单独编写一种ArrayList;要写出所有类型的ArrayList数组不现实,须把ArrayList变成一种模板;保证了类型的安全性。
消除强制转换。
避免了不必要的装箱、拆箱操作,提高程序的性能。
提高了代码的重用性。;;泛型类:把泛型定义在类上。
泛型接口:把泛型定义在方法上。
泛型方法:调用方法的时候指明泛型的具体类型。
;1、泛型本质;
2、为什么使用泛型;
3、泛型使用方式。
;Java泛型编程:泛型类;使用简单泛型类
使用带多个泛型参数类;使用自定义
多个泛型参数类;按照某种类型编写类
;标记要进行参数化的数据类型,示例中使用Integer
;把标记的参数化的数据类型用T替换,同时在类名后添加T,申明T
;使用自定义泛型类
;使用自定义
多个泛型参数类;按照多个泛型参数编写类
;标记要进行参数化的多个数据类型,示例中使用Integer,String类型
;把标记的参数化的数据类型用K,V替换,同时在类名后添加K,V,申明K,V
;使用自定义多参数泛型类
;1、使用简单泛型类;
2、使用带多个泛型参数类;
;Java泛型编程:泛型接口;自定义泛型接口
实现Iterator泛型接口完成数组反序的迭代类;;按照某种类型编写接口
;标记要进行参数化的数据类型,示例中使用String
;把标记的参数化的数据类型用T替换,同时在接口名后添加T,申明T
;实现自定义泛型接口类
;;Iterator泛型接口介绍
;定义实现Iterator接口的ReversIterator类
;实现Iterator接口方法
;main函数中使用ReversIterator类
;
1、自定义泛型接口;
2、实现Iterator泛型接口完成数组反序的迭代类;
;Java泛型编程:泛型方法;泛型方法介绍;
普通泛型方法使用;
静态泛型方法;
可变参数的泛型方法;;类中的方法声明仅用于自身的泛型,这种方法叫做泛型方法
泛型列表中声明的泛型,可用于该方法的返回类型声明、参数列表类型声明和方法代码中的局部变量的类型声明
类中其它方法不能使用当前方法声明的泛型
;添加类型约束只作用于一个方法的多个参数之间、而不涉及到类中的其它方法时
施加类型约束的方法称为静态方法,只能将其定义为泛型方法,因为静态方法不能使用其在所在类的类型参数
;访问修饰符与返回值类型中间的泛型标识符T,E,…是泛型方法的标志
泛型方法声明时的泛型标识符T,E,…表示在方法可以使用声明的泛型类型
与泛型类相同,泛型标识符可以是任意类型,常见的如T,E,K,V等
泛型方法可以声明为static的,并且与普通的静态方法是一样的
;;普通泛型方法声明;普通泛型方法调用
;;静态泛型方法声明
;静态泛型方法调用;;可变参数的泛型方法声明
;可变参数的泛型方法使用
;
1、泛型方法介绍;
2、普通泛型方法使用;
3、静态泛型方法;
4、可变参数的泛型方法
;Java泛型编程:类型通配符;泛型中通配符介绍;
类型通配符使用;;定义泛型类,泛型方法,泛型接口使用很多不同的类型参数符号,比如T,E,K,V
T(type)表示具体的一个java类型
KV(keyvalue)分别代表java键值中的KeyValue
E(element)代表Element
;类型通配符就是一个问号?
类型通配符就是使用?代替具体的类型实参
比如ArrayList?,它的元素类型可以匹配任何类型
;Object类是java中所
您可能关注的文档
- ItineraryPlanning旅游英语68课件讲解.pptx
- IV值与WOE编码02课件讲解.pptx
- JAVA程序基本结构李美霖二JAVA编程基础任务三JAVA的数据类型物联网软件开发基础12课件讲解.pptx
- Java核心类String类与字符编码63课件讲解.pptx
- Java新特征Lambda表达式24课件讲解.pptx
- Kafka数据流管理Kafka的基本原理与架构上32课件讲解.pptx
- Kafka数据流管理Kafka的基本原理与架构下44课件讲解.pptx
- Kafka数据流管理Kafka在大数据架构中的应用场景49课件讲解.pptx
- GB/T 4937.37-2025半导体器件 机械和气候试验方法 第37部分:采用加速度计的板级跌落试验方法.pdf
- 中国国家标准 GB/T 46887-2025数字化供应链 体系架构.pdf
- 中国国家标准 GB/Z 37551.300-2026海洋能 波浪能、潮流能及其他水流能转换装置 第300部分:河流能转换装置发电性能评估.pdf
- GB/T 44937.3-2025集成电路 电磁发射测量 第3部分:辐射发射测量 表面扫描法.pdf
- 中国国家标准 GB/T 44937.3-2025集成电路 电磁发射测量 第3部分:辐射发射测量 表面扫描法.pdf
- 《GB/T 44937.3-2025集成电路 电磁发射测量 第3部分:辐射发射测量 表面扫描法》.pdf
- 中国国家标准 GB/T 44937.1-2025集成电路 电磁发射测量 第1部分:通用条件和定义.pdf
- GB/T 44937.1-2025集成电路 电磁发射测量 第1部分:通用条件和定义.pdf
- 《GB/T 44937.1-2025集成电路 电磁发射测量 第1部分:通用条件和定义》.pdf
- 中国国家标准 GB/T 4937.37-2025半导体器件 机械和气候试验方法 第37部分:采用加速度计的板级跌落试验方法.pdf
- 《GB/T 4937.10-2025半导体器件 机械和气候试验方法 第10部分:机械冲击 器件和组件》.pdf
- 中国国家标准 GB/T 44937.2-2025集成电路 电磁发射测量 第2部分:辐射发射测量TEM小室和宽带TEM小室法.pdf
原创力文档

文档评论(0)