1.泛型概述

  • 泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。
  • 泛型的格式:<数据类型>; 注意:泛型只能支持引用数据类型。
  • 集合体系的全部接口和实现类都是支持泛型的使用的。

    2.泛型的好处:

  • 统一数据类型。

  • 把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为编译阶段类型就能确定下来。

    3.泛型类的概述

    定义类时同时定义了泛型的类就是泛型类。
    泛型类的格式:修饰符 class 类名<泛型变量>{ }
    **public class MyArrayList<T> {}**
    此处泛型变量T可以随便写为任意标识,常见的如E、T、K、V等。
    作用:编译阶段可以指定数据类型,类似于集合的作用

    4.泛型方法概述

    定义方法时同时定义了泛型的方法就是泛型方法。
    泛型方法的格式:修饰符 <泛型变量> 方法返回值 方法名称(形参列表){}
    **public <T> void show(T t) {}**
    作用:方法中可以使用泛型接收一切实际类型的参数,方法更具备通用性。

    5.泛型接口概述

    使用了泛型定义的接口就是泛型接口。
    泛型接口的格式:修饰符 interface 接口名称<泛型变量>{}
    **public interface Data<E>{}**
    作用:泛型接口可以约束实现类,实现类可以在实现接口的时候传入自己操作的数据类型这样重写的方法都将是针对于该类型的操作。

    6.通配符

  1. ?可以在“使用泛型”的时候代表一切类型。
  2. E T K V 是在定义泛型的时候使用的。
  3. ? extendsCar: ?必须是Car或者其子类 泛型上限
  4. **? superCar : ?必须是Car或者其父类 泛型下限

**