一:为什么需要使用泛型
- 存储任意类型的数据在集合中,但取出来都是Object类型,赋值给其他变量时,需要强转
- 可以清楚的表明存储的数据类型
二:泛型,从Java5开始支持
- 泛型是通用的类型
- 代码中的类型不确定,谁调用该段代码,谁指明类型是什么
//定义一个泛型类
public class PointDemo<T> {
private T x;
private T y;
public T getX() {
return x;
}
public void setX(T x) {
this.x = x;
}
public T getY() {
return y;
}
public void setY(T y) {
this.y = y;
}
}
//使用泛型类
//1.使用String类型
PointDemo<String> p = new PointDemo<>();
String x = p.getX();
System.out.println(x);
//2.使用Integer类型
PointDemo<Integer> p1 = new PointDemo<>();
Integer x1 = p1.getX();
System.out.println(x1);
三:使用泛型
- 保证前后类型相同
- 不存在继承关系
- 使用泛型来约束集合中的元素
- 泛型是语法糖,底层依然没有泛型,依就使用强转
四:注意
- 泛型编译之后就消失了
- 把带有泛型的集合赋给不带泛型的集合。此时泛型也消失了