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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘海陆 中级黑马   /  2013-6-5 21:43  /  1028 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙百鑫 于 2013-6-22 00:37 编辑

请问这个代码:         Class<String> clazz = "".getClass();  为什么不行?    左右两边都是String类型的!
而                            Class<String> clazz =  String.class; 却可以编译通过


评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

3 个回复

倒序浏览
Class<String> clazz = "".getClass();
看下错误提示,然后找下API中getClass方法:
实际结果类型是 Class<? extends |X|>,其中 |X| 表示清除表达式中的静态类型,该表达式调用 getClass。 例如,以下代码片段中不需要强制转换:
Number n = 0;
Class<? extends Number> c = n.getClass();

修改下:
Class<? extends String> clazz = "".getClass();

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
张洪慊 发表于 2013-6-5 22:35
Class clazz = "".getClass();
看下错误提示,然后找下API中getClass方法:
实际结果类型是 Class ...

大体上明白了,但是,    |X| 表示清除表达式中的静态类型是什么意思
回复 使用道具 举报
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马