java泛型

java泛型

作用:泛型提供了在编译阶段约束所能操作的数据类型,并自动进行检查,这样可以避免强制类型转换,及其可能出现的异常。

泛型类

1
2
3
4
5
6
7
8
9
10
11
12
public class MyArrayList<E> {
private ArrayList list = new ArrayList();
public void add(E e) {
list.add(e);
}
public void remove(E e){
list.remove(e);
}


}

泛型接口

alt text

泛型方法

alt text

泛型的通配符和上下限

alt text

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class GenericityDemo5 {
public static void main(String[] args) {
// 认识泛型中的通配符和上下限
ArrayList<Xiaomi> xiaomis = new ArrayList<>();
xiaomis.add(new Xiaomi());

ArrayList<Lixiang> lixiangs = new ArrayList<>();
lixiangs.add(new Lixiang());

ArrayList<Dog> dogs = new ArrayList<>();
dogs.add(new Dog());

go(dogs);
}

// "?" 可以在使用泛型时代表一切类型
// 为了作出一些限制,引入了泛型的上下限
// 泛型下限:? extends Car : ? 接收的必须是Car类 或者 子类
// 泛型上限:? super Car : ? 接收的必须是Car类 或者 父类
public static void go(ArrayList<? extends Car> cars){

}

}

泛型支持的类型

泛型不支持基本数据类型 只能支持对象类型(引用数据类型)


java泛型
https://cs-lb.github.io/2024/10/12/Java/java泛型/
作者
Liu Bo
发布于
2024年10月12日
许可协议