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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘菲 中级黑马   /  2012-12-2 11:31  /  1358 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘菲 于 2012-12-2 12:29 编辑

在做反射的Method类中的方法时,遇到了下面的问题,希望大家能够给予帮助,谢谢了!
String str="abc";
Method methodCharAt=String.class.getMethod("charAt", int.class);
char c=(char)(methodCharAt.invoke(str, 1));//这句话会报错,说是Object不能转换成char类型,但是我不明白他的输出结果就是char类型为什么不能强转呢?

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

4 个回复

倒序浏览
对象间的转型应该先转型成char的封装类Character,然后再用charValue()方法获得char型的值,试试看。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
自动拆装箱只能发生在基本类型和其对应的类之间,并不会发生在与Object之间。char c=(char)(methodCharAt.invoke(str, 1));//此间char是基本数据类型,你试着改为Character看看。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
刘子义 发表于 2012-12-2 11:47
对象间的转型应该先转型成char的封装类Character,然后再用charValue()方法获得char型的值,试试看。 ...

谢谢!问题已经解决了!确实是你说的这样的!
回复 使用道具 举报
阳永衡 发表于 2012-12-2 11:49
自动拆装箱只能发生在基本类型和其对应的类之间,并不会发生在与Object之间。char c=(char)(methodCharAt.i ...

谢谢!问题已经解决了!确实是你说的这样的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马