Java 的泛型是伪泛型:在编译期间所有的泛型信息都被擦除掉,在编译器层次上所有的都是字节码(无类型信息)
例子:通过反射机制(invoke)向数组中添加不同类型的元素
public Class Test {
public static void main(String[] args) throws Exception{
ArrayList list = new ArrayList<>();
list.add(1);
list.getClass().getMethod("add",object. class).invoke(list,"agc");
for (int i = 0; i
上述代码中,泛型定义了Integer,但是通过反射机制可以向list中添加字符串。说明,在编译器期间直接类型擦除,只保留了原始类型。
类型擦除意义
程序员不必要将一些类型转换放到编码期间,编译器会进行类型检验。



