1.泛型是什么?
本质:参数化的数据类型
将数据类型当作参数使用,定义的时候使用类型占位符(T,E,K,V),实际使用时(创建对象时,调用方法时)传入具体的数据类型。
2.如何限定泛型数据类型的范围
上边界通配符:<? extends T>
使用固定上边界的通配符的泛型, 就能够接受指定类及其子类类型的数据。
下边界通配符:<? super T>
使用固定下边界的通配符的泛型, 就能够接受指定类及其父类类型的数据.。
3.什么是泛型擦除?
泛型只在编译期进行类型检查,编译时会将类型信息抹除,生成的字节码中并不会保留泛型的类型信息。
4.什么时候使用泛型
定义时无法确定数据类型,使用时才能确定
5.如何定义泛型类、泛型接口、泛型方法?
public class 类名<T>{} //泛型类
public interface 接口名<T>{} //泛型接口
public <T> T 方法名(Class<T> tClass,T t){} //泛型方法