黑马程序员技术交流社区
标题:
报错异常看不懂。。。大家看看呗
[打印本页]
作者:
yan5108652
时间:
2013-6-27 17:12
标题:
报错异常看不懂。。。大家看看呗
本帖最后由 孙百鑫 于 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[][]>
没看懂。。这个是什么异常啊?咋解决?
作者:
小冰块
时间:
2013-6-27 17:15
那句话是告诉你一位数组int[]和二维数组int[][]是不兼容类型,看看你最后一句。
作者:
王广亚
时间:
2013-6-27 17:23
楼主如果代码就这些的话我运行了一下并没有报错啊
结果.PNG
(26.34 KB, 下载次数: 0)
下载附件
2013-6-27 17:23 上传
运行代码及结果在这
作者:
L.I.F.E
时间:
2013-6-27 17:43
如果用的是myeclipse,请将编译环境设置为jdk 1.4,就可以编译通过了!
这是因为 1.5之后引入了泛型,这变成了不兼容类型。
作者:
王靖远
时间:
2013-6-27 17:52
我不知道为什么我用jdk1.7也是报错,张孝祥老师用的是jdk1.6
作者:
zms2100
时间:
2013-6-27 19:34
Lz只报一句异常吗???为啥我是报两个异常呢?String[]数组的字节码在我的MyEclipse版本上也不能跟基本数据类型数组字节码比较。
这个应该是JDK1.5版本后的变革,“==”也就只能比较同种数据类型间字节码,(是建立在我的MyEclipse与Jdk版本基础上得出的总结),如果我们是相同的,那我就贴我的总结,不然我就不误人子弟,O(∩_∩)O~。
PS: 因为equals的底层其实也是“==”,只不过JDK1.5版本后“==”在编译时会进行类型检测,当然也是跟泛型一样的只在编译时有效,所以可以用反射的方式进行不同数据类型间比较(因为编译时它是不明确数据类型)。
作者:
280270738
时间:
2013-6-27 19:52
错误提示没看懂,运行了下结果和上面那同学一样没报错都是flase
作者:
王广亚
时间:
2013-6-27 19:58
我用的是jdk1.6的没有报错,不过我用的不是MyEclipse而是eclipse
作者:
郭伟杰
时间:
2013-6-28 10:40
互不相容的操作对象类型
作者:
孙百鑫
时间:
2013-6-30 08:50
楼主您好,帖子长时间没有动态我已经将您的帖子改成已解决。如有问题请私密我哦~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2