ArrayList<Integer> list = new ArrayList<Integer>();在这个泛型为Integer的ArrayList中存放一个String类型的对象。
- /**
- * ArrayList<Integer> list = new ArrayList<Integer>();
- * 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
- *
- * 分析:
- * 泛型只在编译期有效,在运行期会被擦除掉,所以用反射的获取其字节码对象,获取add方法进行操作,
- * 该方法叫做泛型擦除,也叫作泛型反射;
- */
- public class Test1 {
- public static void main(String[] args) throws Exception {
- ArrayList<Integer> list = new ArrayList<Integer>();
- list.add(111);
- list.add(222);
-
- Class clazz = Class.forName("java.util.ArrayList");//获取字节码对象;
- Method m = clazz.getMethod("add", Object.class); //获取add方法;
- m.invoke(list, "abc");
-
- System.out.println(list);
-
- }
- }
复制代码
|
|