JAVA 如何实现泛型(参数化的类型)
为什么需要泛型
-
1、多种数据类型执行相同的代码
image.png
-
2、泛型类型在使用时,不需要强制类型转换

泛型类和泛型接口
- 常用字母:K、E、T、V
泛型类
-
image.png
泛型接口

泛型接口的两种实现方式
-
image.png
-
image.png
泛型方法 【可以在普通的类中使用】
-
必须要有 <T>
image.png




不是声明在泛型类里边的叫泛型方法
一定要有<T> 将泛型方法类型 定义出来

类型变量的限定
Extends 继承、派生
A Extends B

限定T 必须要实现Comparable接口

类的限定,必须写在接口前面,只能有一个


泛型中的约束和局限性
-
不能实例化类型变量
image.png
-
image.png
先执行的static,再执行构造,没有构造就没有T声明

- 泛型所有的基本类型都不可以,只可以使用包装类

网友评论