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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 葛奎 中级黑马   /  2012-11-22 13:14  /  1816 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 葛奎 于 2012-12-1 09:23 编辑

        Class c = String.class;
//        String s = (String) c.newInstance();
为什么上面的代码需要强转,而下面的代码不需要。        
//                String s1 = String.class.newInstance();

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

6 个回复

倒序浏览
同求。。
回复 使用道具 举报
看看资料就明白了,还是我告诉你吧!
String s1 = String.class.newInstance();直接拿到的是字节码 不要强转
上面的的是对象,不确定是什么类型,所以要强转

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
上面的两句话是向下转型,向下转型必须要进行强制转换的,而且向下转换的前提是向上转型,也就是第一句,而你下面那句=号右面那个就是本类的一个对象,所以不存在转型的问题,没有向上转型自然也就没有向下转型的问题
回复 使用道具 举报
上面的两句话是向下转型,向下转型必须要进行强制转换的,而且向下转换的前提是向上转型,也就是第一句,而你下面那句=号右面那个就是本类的一个对象,所以不存在转型的问题,没有向上转型自然也就没有向下转型的问题
回复 使用道具 举报
徐大鹏 发表于 2012-11-22 16:03
看看资料就明白了,还是我告诉你吧!
String s1 = String.class.newInstance();直接拿到的是字节码 不要强 ...

感觉你的回答比较靠谱,支持一下,呵呵。。:D
回复 使用道具 举报
tfy 中级黑马 2012-12-1 00:49:02
7#
String是一个父类
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马