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

相关文章:

  • 在职老D渗透日记day18:sqli-labs靶场通关(第26关)get报错注入 过滤or和and基础上又过滤了空格和注释符 ‘闭合 手动注入
  • Qt 动态属性(Dynamic Property)详解
  • 牛 CDR3 单抗:抗病毒领域的 “纳米级精准导弹”
  • 系统思考—啤酒游戏经营决策沙盘认证
  • 第二十五天:构造函数/析构函数/拷贝构造
  • SpringBoot 整合 Langchain4j:系统提示词与用户提示词实战详解
  • 小白学习《PCI Express体系结构导读》——第Ⅰ篇第1章PCI总线的基本知识
  • 《A Practical Guide to Building Agents》文档学习
  • Nginx蜘蛛请求智能分流:精准识别爬虫并转发SEO渲染服务
  • 23. CommonJS 和 ES6 Module 区别
  • 第6问 数据分析领域主要的岗位有哪些?
  • autofit.js: 自动调整HTML元素大小的JavaScript库
  • Java设计模式详细解读
  • 安卓四大组件基础题
  • AI搜索:大模型商业落地的“第一束光”,照见了什么?
  • 【数据结构】深入理解单链表与通讯录项目实现
  • aws(学习笔记第五十一课) ECS集中练习(3)
  • MySQL锁机制:悲观锁VS乐观锁详解
  • 初识c语言————宏定义和调用
  • C语言零基础第18讲:自定义类型—结构体
  • 新手向:GitCode疑难问题诊疗
  • C语言:文件操作详解
  • 从 MySQL 5.7 迁移到 8.0:别让 SQL 文件 “坑” 了你
  • 双指针和codetop复习
  • 【LeetCode每日一题】
  • JavaWeb开发_Day14
  • 嵌入式 Linux LED 驱动开发实验
  • Proteus 入门教程
  • KingbaseES主备读写分离集群安装教程
  • 通配符 重定向 管道符