11.泛型

2022-04-28  本文已影响0人  星野君

泛型的好处

  1. 避免了类型强转的麻烦。
  2. 它提供了编译期的类型安全,确保在泛型类型(通常为泛型集合)上只能使用正确类型的对象,避免了在运行时出现ClassCastException。

泛型的语法

interface 接口名<T>{}
class 类名<T,K>{}

ArrayList<Object> objects = new ArrayList<>();
  1. 泛型类型只能是引用类型
  2. 给泛型指定具体类型后,可以传入该类型或者其子类类型

一、自定义泛型

class 类名<T,K>{
成员
}
  1. 普通成员可以使用泛型(属性,方法)
  2. 使用泛型的数组不能初始化
  3. 静态方法不能使用类的泛型
  4. 泛型的类型,是在创建对象时确定的
  5. 如果创建对象没有指定泛型,默认为object

二、自定义泛型接口

interface 接口名<T>{}
  1. 接口中,静态成员也不能使用泛型
  2. 泛型接口的类型,在实现接口时确定
  3. 没有指定类型,默认为object

三、自定义泛型方法

修饰符 <T,K> 返回类型 方法名(参数){}
  1. 泛型方法可以定义在普通类或者泛型类中
  2. 当泛型类被调用时,类型将被确定

四、泛型的继承和通配符

  1. 泛型不具有继承性
  2. <?> 支持任意泛型类型
  3. <? extends A> 支持A类以及A类的子类,规定了泛型的上限
  4. <? super A> 支持A类以及A类的子类,规定了泛型的下限
上一篇下一篇

猜你喜欢

热点阅读