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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 龚首道 中级黑马   /  2013-9-1 18:14  /  957 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 龚首道 于 2013-9-1 21:12 编辑
  1. int[] a = new int[3];
  2.                 int[] b = new int[4];
  3.                 int[][] c = new int[4][5];
  4.                 String[] d = new String[3];
  5.                 System.out.println(a.getClass() == b.getClass());
  6.                 System.out.println(a.getClass() == c.getClass());//提示错误
  7.                 System.out.println(a.getClass() == d.getClass());//提示错误
复制代码
这是张老师视频里的一段代码。提示:不兼容的类型。
但是我是按照老师的代码敲的啊。
请问这是什么问题?

评分

参与人数 1技术分 +1 收起 理由
以防万一 + 1 神马都是浮云

查看全部评分

5 个回复

正序浏览
张洪慊 发表于 2013-9-1 20:37
API中getClass描述:
实际结果类型是 Class

不理解,感觉太书面化了,看不懂,能从新手的角度,比较通俗的解释一下吗?谢谢诶
回复 使用道具 举报
张洪慊 发表于 2013-9-1 20:37
API中getClass描述:
实际结果类型是 Class

详尽!学习了!thanks
回复 使用道具 举报
范龙波 发表于 2013-9-1 18:53
这个问题似乎看到好多遍了
把你编译器的版本搞低点就通过了,  改到1.4就不会报错了.
改编译环境 , 不是改运 ...

恩恩。我试试
回复 使用道具 举报
API中getClass描述:
实际结果类型是 Class<? extends |X|>,其中 |X| 表示清除表达式中的静态类型,该表达式调用 getClass。 例如,以下代码片段中不需要强制转换:
Number n = 0;
Class<? extends Number> c = n.getClass();
在以上例子中:
System.out.println(a.getClass() == b.getClass());//它在编译时期确定返回类型:<? extends int[]>类型与<? extends int[][]> 不可比较

更直接点:
Integer i=new Integer(3);
String s=new String("a");
System.out.println(i.getClass()==s.getClass())//依然是不可比较类型
回复 使用道具 举报
这个问题似乎看到好多遍了
把你编译器的版本搞低点就通过了,  改到1.4就不会报错了.
改编译环境 , 不是改运行环境 !
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马