Java中的泛型

泛型:是DK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。

泛型的格式:<数据类型>

注意:泛型只能支持引用数据类型。

没有泛型如何储存数据:

弊端:多态不能访问子类的特有功能

//如果我们没有给集合指定类型,默认认为所有的数据类型都是Object类型

//此时可以往集合添加任意的数据类型。

//带来一个坏处:我们在获取数据的时候,无法使用他的特有行为。

//此时推出了泛型,可以在添加数据的时候就把类型进行统一。

//而且我们在获取数据的时候,也省的强转了,非常的方便。

泛型的好处:

·统一数据类型。

·把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来。

泛型的细节

·泛型中不能写基本数据类型

指定泛型的具体类型后,传递数据时,可以传入该类类型或者其子类类型

。如果不写泛型,类型默认是Object

如下图泛型时animal类型的可以用本类中的还可以使用子类中的。

泛型类:

使用场景:当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类

泛型的书写:

泛型方法:

方法中形参类型不确定时

方案①:使用类名后面定义的泛型,所有方法都能用

方案②:在方法申明上定义自己的泛型,只有本方法能用

定义方法:

代码案例:

泛型接口:

使用方式:

方式1:实现类给出具体类型

方式2: 实现类延续泛型,创建对象时再确定

泛型的继承

泛型不具备继承性 但是数据具备继承性

代码案例:

如果想让泛型继承该怎么办:那么就用上面我们学过的泛型方法在上面加上泛型<E>

利用泛型方法会有一个小弊端:此时他可以接受任意的数据类型,不仅可以接收他的子类还可以接受无关类,怎么解决这个弊端,那么可以利用泛型的通配符来解决

泛型的通配符:

?extends E:表示可以传递E或者E所有的子类类型

?super E:表示可以传递E或者E所有的父类类型I

应用场景:

* 1.如果我们在定义类、方法、接口的时候,如果类型不确定,就可以定义泛型类、泛型方法、泛型接口。

2.如果类型不确定,但是能知道以后只能传递某个继承体系中的,就可以泛型的通配符

*泛型的通配符:

关键点:可以限定类型的范围。

相关推荐
roman_日积跬步-终至千里10 小时前
【数据治理(6)】DataOps 不是调度工具,而是让数据产品长期可信的运行机制
java·服务器·网络
来了就未晚10 小时前
Python基础 学习代码存储与命名规范
开发语言·python·学习
落魄大学生之流水线上谋生计10 小时前
LangGraph 基本用法指南
java·windows·python·langchain
布莱克60511 小时前
数组详解:定义、作用、应用场景及与链表的区别(C/C++ 代码讲解)
c语言·开发语言·c++·数组
2601_9621284111 小时前
SpringBoot篇(缓存层)
java·spring boot·缓存
hongmai66688811 小时前
MP2348GTL-Z:这颗24V/4A同步降压芯片,把性能和体积平衡得恰到好处
c语言·开发语言·arm开发·单片机·5g
多弗朗皮卡丘11 小时前
C语言梦开始的地方19:文件操作
c语言·开发语言
Dovis(誓平步青云)11 小时前
折叠屏悬停看视频,上半屏和下半屏应该各做什么
android·java·服务器·开发语言·安全·音视频
benchmark_cc11 小时前
Python量化实战:如何检测并剔除历史数据中的“闪崩/乌龙指”异常价格点?
开发语言·人工智能·python·量化·quantdash·量化数据源
2501_9378609411 小时前
Java多线程初阶(下)—— synchronized、volatile、wait/notify与经典并发工具
java·开发语言·jvm