package com;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
public class test {
/**
* ArrayList<Integer>的一个对象,在这个集合中添加一个字符串数据,如何实现呢?
* 泛型只在编译期有效,在运行期会被擦除掉
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
List<Integer> list = new ArrayList<Integer>();//指定泛型为Integer
list.add(111);
list.add(222);
Class clazz = Class.forName("java.util.ArrayList");//获取Class文件对象
Method m = clazz.getMethod("add", Object.class);//获取Class文件对象中的add()方法
m.invoke(list, "abc");//越过泛型检查,添加String类型
System.out.println(list);
}
}
输出结果为:[111, 222, abc]
java中通过反射越过泛型检查
最新推荐文章于 2020-03-29 18:47:35 发布