JavaBasic-5-泛型
泛型
概述
- 泛型提供编译时类型安全检测机制
- 把运行时的可能出现的错误提前到编译期间
- 泛型分类:泛型类、泛型方法、泛型接口
泛型规则
- 所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前
- 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符。
- 类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符。
- 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像 int、double、char 等)。
泛型标记符
- E - Element (在集合中使用,因为集合中存放的是元素)
- T - Type(Java 类)
- K - Key(键)
- V - Value(值)
- N - Number(数值类型)
- ? - 表示不确定的 java 类型
自定义泛型类
- 格式
修饰符 class 类名<标识>{}
- 范例
public class Generic<T>
自定义泛型方法
- 格式
修饰符 <标识> 返回值类型 方法名(类型 变量){}
- 范例
public <T> void show(T t){}
自定义泛型接口
- 格式
修饰符 interface 接口名<标识>{}
- 范例
public interface Generic<T>{}
类型通配符
- 类型通配符为:
<?>
, 类型通配符一般是使用 ? 代替具体的类型参数。例如 List 在逻辑上是 List,List 等所有 List<具体类型实参> 的父类。 - 通配符上限:
<? extends 某个类型>
表示匹配的类型应该是某个类型或者某个类型的子类 - 通配符下限:
<? super 某个类型>
表示匹配的类型应该是某个类型或者某个类型的父类
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment