Java 泛型

前言

1、泛型

  • 泛型 是在容器后面添加 <Type>Type 可以是类,抽象类,接口,表示这种容器只能存放指定的数据类型,别的类型(除子类外)是放不进去的,获取的时候也不需要进行转型。

    1
    2
    3
    ArrayList<Hero> heros = new ArrayList<Hero>();

    ArrayList<Hero> heros = new ArrayList<>(); // 简写

2、支持泛型的类

  • 支持泛型的类

  • 设计一个支持泛型的栈 MyStack

    • 设计这个类的时候,在类的声明上,加上一个 <T>,表示该类支持泛型。
    • Ttype 的缩写,也可以使用任何其他的合法的变量,比如 A, B, X 都可以,但是一般约定成俗使用 T,代表类型。

3、通配符

标记 介绍
? 任意泛型,ArrayList<?> heros,只能以 Object 的形式取出来,不能插入
? extends 指定类泛型或者其子类泛型,ArrayList<? extends Hero> heros,只能取出,不能插入
? super 指定类泛型或者其父类泛型,ArrayList<? super Hero> heros,只能插入,不能取出
  • 如果希望,又能插入,又能取出,就不要用通配符。

4、泛型转型

  • 泛型转型

    • 子类对象转父类对象是可以成功的。
    • 子类泛型不可以转换为父类泛型。
文章目录
  1. 1. 前言
  2. 2. 1、泛型
  3. 3. 2、支持泛型的类
  4. 4. 3、通配符
  5. 5. 4、泛型转型
隐藏目录