黑马程序员技术交流社区

标题: 比较数组的字节码文件问题 [打印本页]

作者: 杨天皓    时间: 2012-6-10 21:47
标题: 比较数组的字节码文件问题
这是张老师写的代码,只要是字节码文件都可以用==来比较。


为什么我的就会报错?



不解啊。。。。。。
作者: 宋建华    时间: 2012-6-10 22:02
少引用了包?
作者: 杨天皓    时间: 2012-6-10 22:06
宋建华 发表于 2012-6-10 22:02
少引用了包?

应该不是这个问题吧。
作者: 宋建华    时间: 2012-6-10 22:11
a1 是一维数组,a3是二维数组不能直接比较
改成这样
System.out.println(a1.getClass() == (Object)a3.getClass());
作者: 杨天皓    时间: 2012-6-10 22:12
宋建华 发表于 2012-6-10 22:11
a1 是一维数组,a3是二维数组不能直接比较
改成这样
System.out.println(a1.getClass() == (Object)a3.getC ...

那张老师写的那个代码怎么就不报错?不是说只要是字节码就可以直接做比较吗?
作者: 何拴绪    时间: 2012-6-10 22:26
你比较的两个数组类型不兼容,数组没有对应的类文件,将一维数组和二维数组的Class实例打印后机会发现是不同的,分贝是 class [I 和 class [[I ,这是虚拟机动态创建的。假如都是一维数组返回的类实例虽然是class [I 但是他们是相等的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2