本帖最后由 抽烟男孩 于 2013-9-12 13:38 编辑
- <P>//通过反射给Integer泛型的ArrayList型集合list中添加String型变量“abc”。
- public static void main(String[] args) throws Exception
- {
- ArrayList<Integer> list = new ArrayList<Integer>();
- list.add(3);
- //通过反射添加“abc”
- list.getClass().getMethod("add", Object.class).invoke(list, "abc");
- System.out.println(list.get(0));//输出3,没问题</P>
- <P>/*为什么以下语句没有问题*/
- System.out.println(list.get(1));//输出“abc”,没问题
- System.out.println(list.get(0).getClass());//输出3的类名没问题
- /*为什么以下语句有问题*/
- System.out.println(list.get(1).getClass());//输出“abc”的类名有问题
- }</P>
复制代码 对比以下代码- //通过反射给String泛型的ArrayList型集合list中添加Integer型变量3。
- public static void main(String[] args) throws Exception
- {
- ArrayList<String> list = new ArrayList<String>();
- list.add("abc");
- //通过反射添加3
- list.getClass().getMethod("add", Object.class).invoke(list, new Integer(3));
- System.out.println(list.get(0));//输出"abc",没问题
- /*为什么以下语句有问题*/
- System.out.println(list.get(1));//输出3,有问题
- System.out.println(list.get(0).getClass());//输出“abc”的类名没问题
- /*为什么以下语句有问题*/
- System.out.println(list.get(1).getClass());//输出3的类名有问题
- }
复制代码 |
|