A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 以梦为码 中级黑马   /  2015-7-17 20:57  /  148 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
* 集合,泛型是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);               
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马