A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 聪明的傻瓜 中级黑马   /  2014-7-28 17:40  /  1168 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如图 为何集合定义为Integer型可以通过反射传入String类型的值,而反之却报错?

5 个回复

倒序浏览
本帖最后由 fantacyleo 于 2014-7-28 18:12 编辑

当你使用泛型,指定类型参数为String时,ArrayList的get函数就变成了
String get(int)
虽然你通过反射绕过编译期的类型检查,但get方法仍然试图返回一个String,结果就是Integer强转为String,你说能不抛异常吗?
回复 使用道具 举报
fantacyleo 发表于 2014-7-28 18:11
当你使用泛型,指定类型参数为String时,ArrayList的get函数就变成了
String get(int)
虽然你通过反射绕过 ...

那第一个String强转Integer怎么回事呢
回复 使用道具 举报
123是int基本类型,需换为Integer才可以把
回复 使用道具 举报
xwh1230 发表于 2014-7-28 19:43
123是int基本类型,需换为Integer才可以把

不是的 ,1.5有自动装箱过程的
回复 使用道具 举报
for(Object o:al)System.out.println(o);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马