javase笔记5----泛型

devtools/2024/10/18 2:12:58/

泛型

简介

泛型是一种特殊的数据类型。 它是Java 的一个高级特性。定义一个语法结构时,不用指明具体类型,而是先定义一个类型变量,在真正使用的时候再确定该变量的具体类型。即类型参数化。

语法

泛型,定义在一对尖括号中,也是一个标识符,一般用在类名后,遵循大驼峰命名法。通常都是用一个大写字母。比如:

public class Student<T>{}

泛型的应用

泛型类的应用

将泛型用在类上时,这个类就叫做泛型类。 泛型定义在类名后

java">public class Person<T>{private T idCard;public Person(T idCard){this.idCard = idCard;}
//当一个子类继承带有泛型的父类时,一般情况下要给泛型参数赋值具体类名
class Student extends Person<Integer>{public Student(Integer inCard){super(idCard);}
}
//子类的泛型参数可以赋值给父类的泛型参数
class Teacher<E> extends Person<E>{public Teacher(E idCard){super(idCard);}
}

泛型接口的应用

将泛型用在接口上时,这个接口就叫做泛型接口。 泛型定义在接口名后。  用法和泛型类,一模一样。

泛型方法的应用

泛型不仅能用在类和接口上,还可以用在方法上。  需要把泛型定义在返回值类型前面。

java"> public static <T> boolean equals(T t1, T t2){return t1.equals(t2);}

泛型通配符

简介

泛型通配符用 ? 表示,代表不确定的类型,是泛型的一个重要组成。

在调用时,表示不关心具体类型。

也可以使用通配符规定调用时,传入的类型的范围,即上边界,和下边界。

上边界

代表类型变量的范围有限,只能传入某种类型,或者它的子类。

利用 <? extends 类名> 的方式,可以设定泛型通配符的上边界

java">public static void print(List<? extends Number> list){for(int i=0;i<list.size();i++){System.out.println(list.get(i));}
}

下边界

代表类型变量的范围有限,只能传入某种类型,或者它的父类。

利用 <? super 类名> 的方式,可以设定泛型通配符的下边界

java">public static void print2(List<? super Integer> list){for(int i = 0;i<list.size();i++){System.out.println(list.get(i));}
}


http://www.ppmy.cn/devtools/125194.html

相关文章

利用 Llama 3.1模型 + Dify开源LLM应用开发平台,在你的Windows环境中搭建一套AI工作流

文章目录 1. 什么是Ollama&#xff1f;2. 什么是Dify&#xff1f;3. 下载Ollama4. 安装Ollama5. Ollama Model library模型库6. 本地部署Llama 3.1模型7. 安装Docker Desktop8. 使用Docker-Compose部署Dify9. 注册Dify账号10. 集成本地部署的 Llama 3.1模型11. 集成智谱AI大模型…

昇思MindSpore进阶教程--数据处理性能优化(下)

大家好&#xff0c;我是刘明&#xff0c;明志科技创始人&#xff0c;华为昇思MindSpore布道师。 技术上主攻前端开发、鸿蒙开发和AI算法研究。 努力为大家带来持续的技术分享&#xff0c;如果你也喜欢我的文章&#xff0c;就点个关注吧 操作系统性能优化 由于MindSpore的数据处…

闲谈Promise

预备知识 回调函数&#xff1a;当一个函数作为参数传入另一个函数中&#xff0c;并且它不会立刻执行&#xff0c;当满足一定条件之后&#xff0c;才会执行&#xff0c;这种函数称为回调函数。比如&#xff1a;定时器。异步任务&#xff1a;与之对应的概念是同步任务&#xff0…

AutoKey:开启高效办公与生活的自动化之门

1、AutoKey 的整体优势AutoKey 是开源桌面自动化工具&#xff0c;虽专为 Linux 和 X11 用户设计&#xff0c;但在其他操作系统上也有卓越表现。其核心是与 Python 完美融合&#xff0c;带来无限可能&#xff0c;让用户能轻松创建自动化任务。 2、在日常办公中的作用 在日常办公…

路由通信 的 VLAN技术

一、VLAN基础 虚拟局域网&#xff08;Virtual Local Area Network&#xff0c;VLAN&#xff09; 根据管理功能、组织机构或应用类型对交换局域网进行分段而形成的逻辑网络。 交换机最多支持4094个VLAN&#xff0c;其中默认管理VLAN是VLAN1&#xff0c;不能创建&#xff0c;也…

支持向量机(SVM)基础教程

一、引言 支持向量机&#xff08;Support Vector Machine&#xff0c;简称SVM&#xff09;是一种高效的监督学习算法&#xff0c;广泛应用 于分类和回归分析。SVM以其强大的泛化能力、简洁的数学形式和优秀的分类效果而备受机器学 习领域的青睐。 二、SVM基本原理 2.1 最大间…

Spring Boot在医疗信息交互系统中的应用

第1章绪论 计算机已经从科研院所&#xff0c;大中型企业&#xff0c;走进了平常百姓家&#xff0c;Internet遍及世界各地&#xff0c;在网上能够用计算机进行文字草拟、修改、打印清样、文件登陆、检索、综合统计、分类、数据库管理等&#xff0c;用科学的方法将无序的信息进行…

MySQL中表的操作

目录 一、查看所有表 1.1、语法 二、创建表 2.1、语法 2.2、示例&#xff1a; 2.3、创建数据加时使⽤校验语句[if not exists] 三、查看表结构 3.1、语法 3.2、示例 四、删除表 4.1、语法 4.2、示例 4.3、注意事项 五、主要数据类型 5.1、数值类型 5.2、日期和…