用反射的方法透过编译器向泛型限定为Integer类型的集合中添加String类型的值时
ArrayList<Integer> list = new ArrayList<Integer>();
list.getClass().getMethod("add", Object.class).invoke(list, "abc");
System.out.println(list.get(0));
这样可以;
ArrayList<Integer> list = new ArrayList<Integer>();
list.getClass().getMethod("add", String.class).invoke(list, "abc");
System.out.println(list.get(0));
这样为什么不可以,getMethod()方法的第二个参数不是代表要获取的方法的参数类型吗?那怎么不能
写String.class了? |