泛型

泛型

  • 泛型是一种未知的,不确定的数据类型。
  • 泛型也可以省略,如果省略泛型相当于泛型是Object
  • 泛型之间是没有继承关系的。 比如:ArrayList
  • 如果在定义类的时候,类名后面写上,就表示在类的范围内定义了一个泛型类型T(不确定的数据类型T)
  • 这种未知的类型T等到我们使用这个类的时候就会被确定出来。
  • 这个T可以使用其他字母代替。

泛型好处

  1. 省略了向下转型的代码。
  2. 将运行时期的问题提前到了编译时期。

泛型擦除

Java中的泛型都是伪泛型,泛型只在源代码阶段有效,一旦编译,泛型就会消失。

泛型方法

泛型方法的定义格式: 修饰符 <泛型> 返回值类型 方法名(参数列表) { 方法体; return 返回值; } 在方法上定义的泛型,需要等到调用方法的时候才能确定。

public class Factory<T> {
/*
    定义方法,接收什么类型的参数,就得到什么类型的结果
 */
public <E> E getSame(E e) {
    return e;
}
}

泛型通配符

如果想要接受任何类型类型的泛型,可以使用泛型通配符 ?表示泛型通配符,可以匹配任何类型的泛型。

泛型通配符要放在方法参数位置被动匹配, 不要主动使用。

泛型限定

如果限制泛型通配符的取值范围,那么可以使用泛型限定。

格式:
    <? extends A>:泛型要么是A类,要么是A类的子类。 上限。
    <? super A>: 泛型要么是A类,要么是A类的父类。 下限。
posted @ 2021-12-29 23:44  进击的小蔡鸟  阅读(45)  评论(0编辑  收藏  举报