Java泛型

Java泛型

泛型:https://blog.csdn.net/briblue/article/details/76736356
《Effective Java中文版》
上下限通配符:https://www.cnblogs.com/alsf/p/5690052.html

1. 泛型类型

  1. 泛型类。
  2. 泛型方法。
  3. 泛型接口。

2. 原生态类型

List list = new ArrayList<>(); 就是原生态类型

3. 类型参数

实例化、定义方法、定义接口的时候,传入的类型参数,一般用大写的字母表示;

List {

}

4. 类型擦除

擦除就是使泛型可以与没有使用泛型的代码随意进行互用。

创建泛型、参数化类型或者类型参数的数组是非法的:

new List[];
new List[];
new E[];

都是非法的。

5. 通配符

除了用 表示泛型外,还有 <?>这种形式。? 被称为通配符。

Sub 是 Base 的子类,不代表 List和 List有继承关系。
通配符的出现是为了指定泛型中的类型范围。

通配符有 3 种形式:

  1. <?>被称作无限定的通配符。
  2. <? extends T>被称作有上限的通配符。
  3. <? super T>被称作有下限的通配符。

5.1 无限定通配符

如果使用“?“接收泛型对象的时候,则不能设置被泛型指定的内容。

5.2 有上限通配符

函数参数List<? extends Parent>,则传入参数的时候必须传入List实例或者List<Parent子类>的实例。

5.3 有下限通配符

函数参数List<? extends Sub>,则传入参数的时候必须传入List实例或者List<Sub父类>的实例。

------本文结束感谢阅读------
您的微小赞助是对我的最大鼓励!