在使用泛型前首先要了解有哪些泛型标记,如表2-2所示。
表2-2
泛型标记 | 说明 |
---|---|
E-Element | 在集合中使用,表示在集合中存放的元素 |
T-Type | 表示 Java 类,包括基本的类和我们自定义的类 |
K-Key | 表示键,比如 Map 中的 key |
V-Value | 表示值 |
N-Number | 表示数值类型 |
? | 表示不确定的 Java 类型 |
类型通配符使用“? ”表示所有具体的参数类型,例如List<? >在逻辑上是List<String>、List<Integer>等所有List<具体类型实参>的父类。
在使用泛型的时候,若希望将类的继承关系加入泛型应用中,就需要对泛型做限定,具体的泛型限定有对泛型上线的限定和对泛型下线的限定。
在Java中使用通配符“? ”和“extends”关键字指定泛型的上限,具体用法为<? extends T>,它表示该通配符所代表的类型是T类的子类或者接口T的子接口。
在Java中使用通配符“? ”和“super”关键字指定泛型的下限,具体用法为<? super T>,它表示该通配符所代表的类型是T类型的父类或者父接口。