泛型

简介: 泛型用于解决数据类型不确定的问题,提升程序通用性与安全性。使用时需注意:只能用引用类型,支持类型擦除,默认为Object。可用于类、方法、接口,常见形式如`ArrayList<E>`,通过`<T>`声明类型参数,实现灵活复用与编译期检查,避免运行时错误。(238字)

泛型

注意点:

  • 泛型中不能写基本数据类型(要写引用数据类型比如:String)
  • 指定泛型的具体类型后,传递数据时,可以传入该类类型或者其子类类型
  • 如果不写泛型,类型默认是Object

【笔者批:泛型是在编辑视设卡,转成class文件时会消失(泛型的擦除),在jdk5中出现泛型,因为以前的屎山代码太多不好改】

泛型类

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

/*格式:
修饰符class类名<类型>{}
*/
//举例:
public class ArrayList<E>{
   
    //创建该类对象时,E就确定类型
}

此处E可以理解为变量,但是不是用来记录数据的,而是记录数据的类型,可以写成别的字母,一般T、E、K、V等比较多(因为type,element,key,value)

假设有两个人,一个大佬写泛型类,一个新手引用大佬写的泛型类

大佬在写泛型类时<>里写字母如E表示不确定的类型,新手在引用泛型类时需要在<>里写上引用数据类型,如String等

泛型方法

方法中形参类型不确定时(一般是指在一个类中,只有一个方法需要不确定的类)

  • 方案一:使用类名后面定义的泛型 -->所有方法都能用
  • 方案二:在方法申明上定义自己的泛型 -->只有本方法能用

格式:在修饰符后面加上<>即可,

修饰符 <类型> 返回值类型 方法名(类型 变量名){ }

如:public < T > void show ( T t ){

} //T表示不确定的类型,t表示一个变量,类似于String str

泛型接口

在集合中要添加的数据类型是不确定的

格式:在接口名后加上<>即可,

修饰符 interface 接口名<类型>{ }

举例:public interface List< E > { }

重点:如何使用一个带泛型的接口
  • 方式1:实现类给出具体的类型
  • 方式2:实现类延续泛型,创建对象时再确定

例如:

//方式1:实现类给出具体的类型
public class MyArrayList implements List<String>{
   
    //大括号里再重写所有的方法
}
//方式2:实现类延续泛型,创建对象时再确定
public class MyArrayList<E> implements List<E>{
   
    //大括号里再重写所有的方法
}
相关文章
|
6月前
|
Oracle Java 关系型数据库
Java命名规范
Java命名规范涵盖包、类、方法、变量等命名规则。包名全小写,类名首字母大写采用驼峰法,接口常用形容词,抽象类以Abstract/Base开头,异常类以Exception结尾,方法名小写驼峰,常量全大写用下划线分隔,枚举值按常量规范命名,提升代码可读性与一致性。
899 0
|
SQL Java 数据库连接
Mybatis动态之灵活使用
Mybatis动态之灵活使用
303 0
|
10月前
|
机器学习/深度学习 人工智能 搜索推荐
当AI遇上元宇宙:内容生产的“外挂”时代
当AI遇上元宇宙:内容生产的“外挂”时代
401 8
|
7月前
|
边缘计算 运维 安全
工业互联网平台实践
工业互联网平台通过设备接入、边缘计算、数据分析与数字孪生等核心技术,实现制造全链路智能化。结合MES/ERP系统集成与工控安全体系,赋能生产协同、预测性维护与决策优化,推动智能制造高效、安全转型升级。
459 0
|
JSON 数据挖掘 API
抖音商品详情API接口如何使用
使用抖音商品详情 API 需要先注册抖音开放平台账号并创建应用,获取 appkey 和 appsecret。接着阅读 API 文档,构建并发送 HTTP 请求,处理返回的 JSON 数据。注意保护密钥、处理错误和确保数据合规。
|
11月前
|
开发框架 监控 前端开发
Playwright进阶篇 (5) | 网络请求拦截与Mock
Playwright 提供强大的网络请求拦截与 Mock 能力,支持修改请求参数、模拟 API 响应、构造异常场景、加速测试执行,提升测试效率与可靠性。
|
人工智能 安全 算法
《大模型开源与闭源的深度博弈:科技新生态下的权衡与抉择》
开源智能体大模型通过开放代码和架构,构建了全球开发者协作网络,降低了技术门槛,使初创企业、小型团队及学术机构能快速进入AI领域。它透明的特性增强了用户信任,但开放性也带来质量与安全挑战。相比之下,闭源模型由大型机构开发,具备专业定制、严格质量和高安全性优势,适合对精准性和保密性要求高的场景,却因高昂成本和技术封闭限制了部分用户的灵活性。两者并非对立,而是互补关系:开源促进创新,闭源保障商用。未来,二者可能融合,形成更优发展模式。
938 31
|
Java Apache
httpclient能不能改成长连接的连接池
【8月更文挑战第25天】httpclient能不能改成长连接的连接池
801 2
|
存储 Kubernetes 网络协议
k8s学习-StatefulSet(模板、更新、扩缩容、删除等)
k8s学习-StatefulSet(模板、更新、扩缩容、删除等)
976 0
|
设计模式 前端开发 Java
【十三】设计模式~~~行为型模式~~~中介者模式(Java)
文章详细介绍了中介者模式(Mediator Pattern),这是一种对象行为型模式,用于封装一系列对象的交互,降低系统耦合度,并简化对象之间的交互关系。通过案例分析、结构图、时序图和代码示例,文章展示了中介者模式的组成部分、实现方式和应用场景,并讨论了其优点、缺点和适用情况。
【十三】设计模式~~~行为型模式~~~中介者模式(Java)

热门文章

最新文章