在使用泛型前首先要了解有哪些泛型标记,如表2-2所示。

表2-2

image.png

泛型标记 说明
E-Element 在集合中使用,表示在集合中存放的元素
T-Type 表示 Java 类,包括基本的类和我们自定义的类
K-Key 表示键,比如 Map 中的 key
V-Value 表示值
N-Number 表示数值类型
表示不确定的 Java 类型

类型通配符使用“? ”表示所有具体的参数类型,例如List<? >在逻辑上是List<String>、List<Integer>等所有List<具体类型实参>的父类。

在使用泛型的时候,若希望将类的继承关系加入泛型应用中,就需要对泛型做限定,具体的泛型限定有对泛型上线的限定和对泛型下线的限定。

1.对泛型上限的限定:<? extends T>

在Java中使用通配符“? ”和“extends”关键字指定泛型的上限,具体用法为<? extends T>,它表示该通配符所代表的类型是T类的子类或者接口T的子接口。

2.对泛型下限的限定:<? super T>

在Java中使用通配符“? ”和“super”关键字指定泛型的下限,具体用法为<? super T>,它表示该通配符所代表的类型是T类型的父类或者父接口。