泛型

简介: 泛型用于解决数据类型不确定的问题,提升程序通用性与安全性。使用时需注意:只能用引用类型,支持类型擦除,默认为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>{
   
    //大括号里再重写所有的方法
}
相关文章
|
5天前
|
Java Go 开发者
IDEA开发常用的快捷键
IntelliJ IDEA常用快捷键汇总:涵盖代码生成(如main、sout)、编辑(复制、删除、重命名)、导航(跳转、查找)、格式化、代码阅读及版本控制等高频操作,提升开发效率。熟练掌握可显著优化编码体验,是Java开发者必备技能。
104 1
|
5天前
|
存储
原码,反码,补码
原码是二进制的直观表示,符号位决定正负;反码用于解决负数计算问题,负数按位取反;补码在反码基础上加1,解决跨0误差。计算机中所有数据存储与运算均采用补码形式,可准确处理正负数运算,并能多表示一个特殊值-128。
86 5
|
5天前
经典题:求一个数是否为质数
介绍质数判断与自幂数概念:质数为仅被1和自身整除的大于1的自然数;自幂数是n位数等于各位数字n次幂之和,如水仙花数(三位)、四叶玫瑰数(四位)等,体现数字的独特数学之美。(239字)
44 1
|
5天前
|
Oracle Java 关系型数据库
Java命名规范
Java命名规范涵盖包、类、方法、变量等命名规则。包名全小写,类名首字母大写采用驼峰法,接口常用形容词,抽象类以Abstract/Base开头,异常类以Exception结尾,方法名小写驼峰,常量全大写用下划线分隔,枚举值按常量规范命名,提升代码可读性与一致性。
87 0
|
5天前
内部类
内部类是定义在类中的类,分为成员、静态、局部和匿名四种。成员内部类属于外部类成员,可被权限修饰符修饰;静态内部类仅访问外部静态成员;局部内部类定义在方法内;匿名内部类用于简化接口或父类的实现,常用于一次性场景,提升代码简洁性。(238字)
42 1
|
8天前
|
数据采集 缓存 自然语言处理
闲鱼 item_search - 关键字商品搜索接口对接全攻略:从入门到精通
闲鱼item_search接口是检索二手商品的核心API,支持多维度筛选与分页返回商品基础信息,需HMAC-SHA256签名认证,权限分级且风控严格。本文提供从权限申请、签名生成、Python对接到调试优化的全链路指南,适用于比价、运营分析等场景。
|
8天前
|
边缘计算 运维 安全
工业互联网平台实践
工业互联网平台通过设备接入、边缘计算、数据分析与数字孪生等核心技术,实现制造全链路智能化。结合MES/ERP系统集成与工控安全体系,赋能生产协同、预测性维护与决策优化,推动智能制造高效、安全转型升级。
47 0
|
8天前
|
Web App开发 安全 JavaScript
跨域处理
跨域指协议、域名、端口不同时的资源请求。浏览器因同源策略限制,默认阻止跨域请求。通过CORS(跨域资源共享)可在服务端设置Access-Control-Allow-Origin等响应头,实现安全跨域。Spring Boot中可通过@CrossOrigin注解或全局配置WebMvcConfigurer实现细粒度跨域控制,支持指定域名、方法、请求头及凭证传递。
|
5月前
|
编解码 自然语言处理
通义万相开源14B数字人Wan2.2-S2V!影视级音频驱动视频生成,助力专业内容创作
今天,通义万相的视频生成模型又开源了!本次开源Wan2.2-S2V-14B,是一款音频驱动的视频生成模型,可生成影视级质感的高质量视频。
1272 29
|
5月前
|
开发框架 监控 前端开发
Playwright进阶篇 (5) | 网络请求拦截与Mock
Playwright 提供强大的网络请求拦截与 Mock 能力,支持修改请求参数、模拟 API 响应、构造异常场景、加速测试执行,提升测试效率与可靠性。