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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 郑彬 于 2012-8-15 23:20 编辑

System.out.println(int.class==char.class);
类实例不是可以比较吗?因为是字节码比较啊?但是我这样写编译器尽然报错。还说什么类型不匹配。
是不是自己的MyEclipse版本的问题?我是10.0版本的。
视频上没错啊。

评分

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

查看全部评分

5 个回复

倒序浏览
基本类型是没有类的,自动提升至各自的包装类 Integer和Character,类不同,不能比较
回复 使用道具 举报
他们之间的比较用System.out.println(int.class.equals(char.class));就没有什么问题了
回复 使用道具 举报
类型不同,无法比较incomparable types: java.lang.Class<java.lang.Integer> and java.lang.Class<java.lang.Character>
如果你想要比较字节码文件是否是同一份,可以这样写
Class c1=int.class;
Class c2=char.class;
System.out.println(c1==c2);
此时比较的是变量c1和c2是否指向同一份字节码,比较的是c1和c2指向的地址,因为在内存中一个类的字节码文件只有一份,不会重复加载,所以可以通过比较引用变量指向的地址来得出结论

评分

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

查看全部评分

回复 使用道具 举报
System.out.println((Class)int.class == (Class)char.class);
回复 使用道具 举报
问题已经解决
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马