黑马程序员技术交流社区
标题:
类型问Integer的ArrayList集合为什么可以通过反射存放一个Stri...
[打印本页]
作者:
liu100chao
时间:
2015-7-27 19:56
标题:
类型问Integer的ArrayList集合为什么可以通过反射存放一个Stri...
类型问Integer的ArrayList集合为什么可以通过反射存放一个String类型的对象
代码示例:
import java.lang.reflect.*;
import java.util.*;
class Test11
{
public static void main(String[] args) throws Exception
{
List<Integer> list = new ArrayList<Integer>(); //定义Integer泛型
String str = "abcasdf af as as ";
Method[] method=list.getClass().getMethods();//取得list的所有方法
System.out.println(method.length);
/*
for(int i=0;i<method.length;i++)
{
System.out.println(method[i]);//遍历打印list的方法
}
*/
System.out.println(method[0]);
System.out.println(method[0].invoke(list, str));//通过反射来执行list的第一个方法,第一个是list对象,代表该对象的方法,第二个是方法参数
System.out.println(list);
System.out.println(list.size());
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i));
}
}
}
作者:
liu100chao
时间:
2015-7-27 19:58
难道原因是:通过反射已经将Integer类型改变为String类型???
作者:
a12366456
时间:
2015-7-27 20:29
泛型只在编译阶段有效,反射ArrayList类直接使用它的字节码文件,而字节码文件中是没有泛型
作者:
yongaidongbing
时间:
2015-7-27 20:51
.........................
作者:
liu100chao
时间:
2015-7-31 12:11
a12366456 发表于 2015-7-27 20:29
泛型只在编译阶段有效,反射ArrayList类直接使用它的字节码文件,而字节码文件中是没有泛型 ...
谢谢! 学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2