什么是泛型(编译期间转换类型、减少了类型转换)
理解:(E -> 形参,String、Integer-> 实参)
泛型好处:(类型安全、消除了强制类型转换)
泛型的缺陷和应用场景:
泛型类
PS:
泛型类在创建对象的时候,没有指定类型,将按照Object类型来操作
泛型类,不支持基本数据类型
同一泛型类,根据不同的数据类型创建的对象,本质上是同一类型
泛型类派生子类:
ps: 可以扩展多个参数,但是必须有一个与父类一致
ps:不指定默认Object。明确指定后不能写ET,需要写具体类型
泛型接口:(基本与泛型类派生子类一致)
泛型方法:
demo:
ps:泛型方法调用的时候指定泛型类型。默认object?
ps:即使泛型类和泛型方法定义的参数T一样,他们是独立存在的
泛型可变参数:
ps:成员方法可以使用类的泛型定义使用泛型能力,但静态方法必须定义为泛型方法
类型通配符:(实参!!!)
类型通配符上限:
ps:不能调用集合add方法。 因为方法还不知道到底创建对象定义的哪个类型或子类型
类型通配符下限:
协变(extends)-》get、逆变(super)-》add
类型擦除: