(1)泛型可以在编译阶段约束操作的数据类型,并进行检查。
(2)泛型的格式:<数据类型>
(3)注意:泛型只能支持引用数据类型,像基本数据类型要用它的包装类。
(4)如果没有泛型,即没有给集合指定类型,默认所有的数据类型都是Object类型,就可以给集合添加任意的数据类型。但是多态的弊端是不能访问子类的特有功能,强转也不知道转成什么类型才合适。
(5)Java中的泛型是伪泛型,即在编译时会检查,但是在运行是就是Object类型,在输出时再强转为泛型指定的类型。
(6)指定泛型的具体类型后,传入数据时,可以传入该类型或者子类型,但是一般不这么做,一般会保持数据类型一致。
(7)泛型类:当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类。
eg.public class ArrayList<E>{
}
此处的E可以理解为变量,但不是用来记录数据的,而是记录数据的类型,可以用其他字母代替,如:T、K、V等。
创建该类对象时,E就确定类型。
(8)泛型方法:
方法中形参类型不确定时,方案一:使用类名后面定义的泛型;(所有方法都能用)方案二:在方法申明上定义自己的泛型。(只有本方法能用)eg.public <T>void show(T t){}调用该方法时,T就确定类型。(9)泛型接口格式:修饰符 interfa 接口名<类型>{ }如何使用?方式1:实现类给出具体类型方式2:实现类延续泛型,创建对象时再确定(10)泛型不具备继承性,因此,泛型里面写的是什么数据类型,那么只能传递什么类型的数据。但是数据具备继承性。(11)如果类型不确定,但是能知道以后只能传递某个继承体系中的类型,则可以使用泛型的通配符。泛型的通配符:?也表示不确定的类型他可以进行类型的限定? extends E:表示可以传递E或者E所有的子类型? super E:表示可以传递E或者E所有的父类型标签:可以,数据类型,类型,确定,泛型,方法 From: https://www.cnblogs.com/qiqi-yi/p/16822653.html