泛型的补充
泛型中涉及的术语:
整个ArrayList<E>称为:泛型类型
ArrayList<E>中的E称为:类型变量或类型参数
整个ArrayList<Integer>称为:参数化的类型
ArrayList<Integer>中的Integer称为:类型参数的实例或实际类型参数
ArrayList<Integer>中的<>念着typeof
ArrayList称为:原始类型
泛型的擦除和补偿:
泛型技术是给编译器使用的技术,用于编译时期,确保了类型的安全。
泛型的擦除:运行时,会将泛型去掉,生成的class文件中是不带泛型的。
为什么擦除呢?为了兼容运行的类加载器。
泛型的补偿:在运行时,通过获取元素的类型进行转换动作,不用使用者再强制转换了。
泛型内只能定义引用数据类型,不能定义基本数据类型
自定义泛型类:
如果类的实例对象中的多处都要用到同一个泛型参数,即这些地方引用的泛型类型要保持同一个实际类型时,这时候就要采用泛型类型的方式进行定义,也就是类级别的泛型。
public class GenricDao<T>
{
pritate T field1;
public void save(T obj){}
public T getById(int id){}
}