1 泛型概述
泛型本质上是一个“代码模板”,可让开发者定义类型安全数据结构,无需处理实际数据类型。 例如,List<T> 是一个可以声明的泛型集合,可与 List<int>、List<string> 或 List<Person> 等任何类型结合使用。
泛型需要严格遵守数据类型一致化要求,泛型的核心目标是增强方法,可以进行单一方法增强和整体方法增强
2 单一方法增强
形式参数列表中必须有一个参数对应自定义泛型,用于明确约束泛型对应的具体数据类型
语法格式:
权限修饰符 [static] <自定义泛型占位符> 返回值 方法名(形式参数列表) {
方法体;
}
public static <T> T getType(T t) {
return t;
}
3 类声明泛型
格式:
class 类名<自定义泛型占位符> {
成员方法可以使用自定义泛型。
}
类名带有自定义泛型,需要通过实例化对象过程中进行泛型对应具体数据类型确定
类名<具体数据类型> 类对象 = new 类名<>();
4 接口声明泛型
格式:
interface 接口名<自定义泛型占位符> {
}
接口中的成员变量无法使用自定义泛型,因为缺省属性 public static final ,定义时需要初始化。无法对于泛型类型进行初始化操作。
接口声明泛型影响的是实现类操作,实现类遵从带有自定义泛型接口有两种形式约束模式和自由模式。