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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yan5108652 中级黑马   /  2013-6-27 17:12  /  1618 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙百鑫 于 2013-6-30 08:50 编辑

                                                                     int [] a1 = new int []{1,2,3};
                                                                       int [] a2 = new int [4];
                                                                       int [] []  a3 = new int [2] [3];
                                                                       String [] a4 = new String[]{"a","b","c"};
                                                                       System.out.println(a1.getClass() == a4.getClass());
                                                                       System.out.println(a1.getClass() == a3.getClass());

无法通过编译,错误提示:Incompatible operand types Class<capture#8-of ? extends int[]> and Class<capture#9-of ? extends int[][]>

没看懂。。这个是什么异常啊?咋解决?

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 赞一个!

查看全部评分

9 个回复

倒序浏览
那句话是告诉你一位数组int[]和二维数组int[][]是不兼容类型,看看你最后一句。

评分

参与人数 1黑马币 +6 收起 理由
yan5108652 + 6 牛!

查看全部评分

回复 使用道具 举报
楼主如果代码就这些的话我运行了一下并没有报错啊

结果.PNG (26.34 KB, 下载次数: 0)

运行代码及结果在这

运行代码及结果在这
回复 使用道具 举报
如果用的是myeclipse,请将编译环境设置为jdk 1.4,就可以编译通过了!
这是因为 1.5之后引入了泛型,这变成了不兼容类型。
回复 使用道具 举报
我不知道为什么我用jdk1.7也是报错,张孝祥老师用的是jdk1.6
回复 使用道具 举报
Lz只报一句异常吗???为啥我是报两个异常呢?String[]数组的字节码在我的MyEclipse版本上也不能跟基本数据类型数组字节码比较。
这个应该是JDK1.5版本后的变革,“==”也就只能比较同种数据类型间字节码,(是建立在我的MyEclipse与Jdk版本基础上得出的总结),如果我们是相同的,那我就贴我的总结,不然我就不误人子弟,O(∩_∩)O~。
PS:  因为equals的底层其实也是“==”,只不过JDK1.5版本后“==”在编译时会进行类型检测,当然也是跟泛型一样的只在编译时有效,所以可以用反射的方式进行不同数据类型间比较(因为编译时它是不明确数据类型)。
回复 使用道具 举报
错误提示没看懂,运行了下结果和上面那同学一样没报错都是flase
回复 使用道具 举报
我用的是jdk1.6的没有报错,不过我用的不是MyEclipse而是eclipse
回复 使用道具 举报
互不相容的操作对象类型
回复 使用道具 举报
楼主您好,帖子长时间没有动态我已经将您的帖子改成已解决。如有问题请私密我哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马