黑马程序员技术交流社区

标题: 强转小问题 [打印本页]

作者: 葛奎    时间: 2012-11-22 13:14
标题: 强转小问题
本帖最后由 葛奎 于 2012-12-1 09:23 编辑

        Class c = String.class;
//        String s = (String) c.newInstance();
为什么上面的代码需要强转,而下面的代码不需要。        
//                String s1 = String.class.newInstance();
作者: 徐大鹏    时间: 2012-11-22 15:39
同求。。
作者: 徐大鹏    时间: 2012-11-22 16:03
看看资料就明白了,还是我告诉你吧!
String s1 = String.class.newInstance();直接拿到的是字节码 不要强转
上面的的是对象,不确定是什么类型,所以要强转
作者: 张硕    时间: 2012-11-23 00:25
上面的两句话是向下转型,向下转型必须要进行强制转换的,而且向下转换的前提是向上转型,也就是第一句,而你下面那句=号右面那个就是本类的一个对象,所以不存在转型的问题,没有向上转型自然也就没有向下转型的问题
作者: 张硕    时间: 2012-11-23 00:26
上面的两句话是向下转型,向下转型必须要进行强制转换的,而且向下转换的前提是向上转型,也就是第一句,而你下面那句=号右面那个就是本类的一个对象,所以不存在转型的问题,没有向上转型自然也就没有向下转型的问题
作者: 徐-星星    时间: 2012-11-23 02:15
徐大鹏 发表于 2012-11-22 16:03
看看资料就明白了,还是我告诉你吧!
String s1 = String.class.newInstance();直接拿到的是字节码 不要强 ...

感觉你的回答比较靠谱,支持一下,呵呵。。:D
作者: tfy    时间: 2012-12-1 00:49
String是一个父类




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2