1. 什么是泛型

1.1. 背景

JAVA 推出泛型以前,程序员可以构建一个元素类型为 Object 的集合,该集合能够存储任意的数据类型对象,而在使用该集合的过程中,需要程序员明确知道存储每个元素的数据类型,否则很容易引发 ClassCastException 异常。

1.2. 概念

Java 泛型(generics)是 JDK5 中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许我们在编译时检测到非法的类型数据结构。泛型的本质就是参数化类型,也就是所操作的数据类型被指定为一个参数。

1.3. 好处

类型安全

消除了强制类型的转换

1.4. 类型

E - Element (在集合中使用,因为集合中存放的是元素)
T - Type(表示 Java 类,包括基本的类和我们自定义的类)
K - Key(表示键,比如 Map 中的 key)
V - Value(表示值)
N - Number(表示数值类型)
? - (表示不确定的 java 类型)
S、U、V - 2nd、3rd、4th types

2. 泛型类和接口

2.1. 泛型类


2.2. 泛型接口


3. 泛型方法

返回值前面加泛型列表





4. 类型擦除



4.1. 桥接方法

5. 泛型数组

1
2
3
4
5
private T[] array;
public Fruit(Class<T> clazz,int length) {
//通过Array.newInstance创建泛型数组对象
array = (T[])Array.newInstance(clazz, length);
}

6. 实战经验

7. 参考与感谢

7.1. 黑马

https://www.bilibili.com/video/BV1xJ411n77R?p=4&vd_source=c5b2d0d7bc377c0c35dbc251d95cf204
[[Java之泛型_BeyondCZN.的博客-CSDN博客]]

#todo

- [ ] 🚩 - 泛型复习 - 🏡 2023-01-31 12:26 https://mp.weixin.qq.com/s/_PA4W6SZEhMLm35OoXq3Ig