黑马程序员技术交流社区

标题: 泛型擦除 [打印本页]

作者: 以梦为码    时间: 2015-7-17 20:57
标题: 泛型擦除
/*
* 集合,泛型是String,在集合存储Integer,能否实现
* 反射针对就是class文件
* 反射获取ArrayList的字节码文件对象,add
*
* 反射擦除泛型,反射绕过编译器检查,将不同的数据类型,存储到带有泛型的集合中
*/
import java.lang.reflect.Method;
import java.util.ArrayList;
public class Test1 {
        public static void main(String[] args) throws Exception{
                ArrayList<String> array = new ArrayList<String>();
                array.add("abc");
                array.add("bcd");
               
                //获取ArrayList的字节码文件对象
                Class clazz = array.getClass();
                //直接从class文件中获取add,并运行
                Method method = clazz.getMethod("add", Object.class);
                method.invoke(array, 123);
                method.invoke(array, false);
                method.invoke(array, 123.67);
               
                System.out.println(array);               
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2