当前位置: 首页 > 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.xdnf.cn/news/1313983.html

相关文章:

  • 《从入门到精通:Kafka核心原理全解析》
  • 中级统计师-会计学基础知识-第三章 会计凭证与会计账簿
  • ZYNQ QSPI控制器说明
  • OpenStack Neutron中的L2 Agent与L3 Agent:新手友好指南
  • Java 9 新特性及具体应用
  • InfluxDB 数据迁移工具:跨数据库同步方案(二)
  • 【笔记】动手学Ollma 第一章 Ollama介绍
  • 各种读取csv文件的工具性能比较
  • GEEPython-demo1:利用Sentinel-2监测北京奥林匹克森林公园2024年NDVI变化(附Python版)
  • 从零开始大模型之实现GPT模型
  • Spring Framework:Java 开发的基石与 Spring 生态的起点
  • RecSys:多目标模型和MMOE
  • Oracle数据库文件管理与空间问题解决指南
  • Reduce系列
  • GaussDB 数据库架构师修炼(十三)安全管理(3)-行级访问控制
  • 测试18种RAG技术,找出最优方案(四)
  • 用Pygame开发桌面小游戏:从入门到发布
  • 衡石使用指南嵌入式场景实践之仪表盘嵌入
  • 【FreeRTOS】队列集
  • 聊聊智慧这个东西之三:从食物的毒性、偏性聊起
  • 布隆过滤器的原理及使用
  • ubuntu网络共享
  • 银行间交易IMIX协议加密相关
  • JetPack系列教程(八):PDF库——让Android应用也能优雅“翻页”
  • androidstudio内存大小配置
  • 《从混乱到有序:AI 如何一步步梳理数据质量难题》文章提纲
  • LIN-TestWait函数解析
  • 【Html网页模板】赛博朋克数据分析大屏网页
  • 【开发技巧】VS2022+QT5+OpenCV4.10开发环境搭建QT Creator
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘opencv-python’问题