当前位置: 首页 > news >正文

Java -- 泛型-自定义泛型

目录

1. 泛型的理解和好处

传统方法的问题分析:

泛型的好处:

2. 泛型介绍

3. 注意事项和细节

4. 自定义泛型

基本语法:

注意细节:

5. 自定义泛型接口

注意细节:

6. 自定义泛型方法

注意细节:


1. 泛型的理解和好处

传统方法的问题分析:

1. 不能对加入的集合ArrayList中的数据类型进行约束(不安全)

2. 遍历的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响

泛型的好处:

1. 编译时,检查添加元素的类型,提高了安全性

2. 减少了类型转换的次数,提高效率

3. 不再提示编译警告


2. 泛型介绍

1. 泛型又称参数化类型,是jdk5出现的新特性,解决数据类型的安全性问题

2. 在类声明或实例化时只要指定好需要的具体的类型即可

3. Java泛型可以保证如果程序在编译时没有发生警告,运行就不会产生ClassCastException异常。同时,代码更加简洁,健壮

4. 泛型的作用是:可以在类声明时通过一个标识表示类中的某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型


3. 注意事项和细节

1. 泛型里面的<T>和<E>只能是引用类型

2. 在指定泛型具体类型后,可以传入该类型或该子类类型


4. 自定义泛型

基本语法:

class 类名<T,R..>{

成员

}

注意细节:

1. 普通成员可以使用泛型

2. 使用泛型的数组,不能初始化

3. 静态方法中不能使用类的泛型

4. 泛型类的类型,是在创建对象时确定的(因为创建对象时,需要指定确定类型)

5. 如果在创建对象时,没有指定类型,默认为Object


5. 自定义泛型接口

基本语法:
interface 接口名 <T,R...>{

}

注意细节:

1. 接口中,静态成员也不能使用泛型

2. 泛型接口的类型,在继承接口或者实现接口时确定

3. 没有指定类型,默认为Object


6. 自定义泛型方法

基本语法:
修饰符<T,R...>返回类型 方法名(参数列表){

}

注意细节:

1. 泛型方法,可以定义在普通类中,也可以定义在泛型类中

2. 当泛型方法被调用时,类型会确定

3. public void eat(E e){}, 修饰符后没有<T,R...> eat 方法不是泛型方法,而是使用了泛型

http://www.dtcms.com/a/335110.html

相关文章:

  • 【数据结构入门】二叉树(2)
  • 数据结构 实现循环队列的三种方法
  • 模式组合应用-桥接模式(一)
  • (论文速读)ViDAR:视觉自动驾驶预训练框架
  • Harmony OS 开发入门 第四章
  • C# 反射和特性(关于应用特性的更多内容)
  • 022 基础 IO —— 文件
  • 服务器硬件电路设计之I2C问答(七):解析 I2C 通信 “卡壳” 难题:从设备无响应与跨电压兼容之道
  • Apache Hudi:数据湖的实时革命
  • 【每日一题】Day5
  • 一键检测接口是否存活:用 Python/Shell 写个轻量级监控脚本
  • 后量子密码算法ML-KEM介绍及开源代码实现
  • 数据结构:二叉平衡树
  • ROS move_base 混合功能导航 RealSense D435i + 3D 点云地图 + 楼层切换 + 路径录制 + 路径规划
  • 微服务的编程测评系统12-xxl-job-历史竞赛-竞赛报名
  • C++ 力扣 1658.将 x 减到 0 的最小操作数 题解 优选算法 滑动窗口 (同向双指针)优化 每日一题 详细题解
  • 免费万能电子书格式转换器!Neat Converter支持 ePub、Azw3、Mobi、Doc、PDF、TXT 文件的相互转换。
  • 两个简单的设计模式的例子
  • FP16(半精度)和FP32(单精度)
  • CentOS7安装使用FTP服务
  • 产品设计.原型设计
  • TexStudio中的Latex,PDFLatex,XeLatex和LuaLatex的区别
  • vue优化有哪些手段?
  • ubuntu网络共享
  • 深度解析和鲸社区热门项目:电商双 11 美妆数据分析的细节与价值
  • ubuntu远程桌面很卡怎么解决?
  • [Linux] Linux系统负载监控 Linux服务管理
  • Java Stream sort算子实现:SortedOps
  • 网络层(1)
  • DeepResearch开源与闭源方案对比