泛型的分类
泛型:泛型类和泛型方法
泛型类的简单定义
- 尖括号<>是泛型的标志;
- T 是类型变量名,变量名一般大写;
- T 在定义时是形参,代表的是MyArrayList最终传入的数据类型。
public class MyArrayList<T> { //<T>只是一个占位符,表示当前类是一个泛型类
public T[] arr;
public int size;
}
泛型的意义:
- 可以自动进行类型的检查;
- 可以自动进行类型的转换
注意:
- 不能new泛型类型的数组。如:T t = new T[10];
- 简单类型不能作为泛型类型的数组;
- 泛型类型参数不参与类型的组成。
总结
泛型到底是怎么编译的?
擦除机制。泛型只是编译时期的一种机制,擦除机制。在运行过程中,不存在泛型的说法。擦除机制只是在编译的时候把泛型类型擦除为了object类“(不是替换)”,具有object的特性。