黑马程序员技术交流社区
标题:
关于反射一个很奇怪的问题,字节码比较
[打印本页]
作者:
liujkh123
时间:
2013-6-20 20:49
标题:
关于反射一个很奇怪的问题,字节码比较
本帖最后由 liujkh123 于 2013-6-27 16:10 编辑
今天听张孝祥老师讲反射,然后自己试了一下代码 竟然出现下面的问题,真是搞不懂
int[] a1 = new int[] {1, 2, 3};
int[] a2 = new int[] {1, 2, 3, 4};
int[][] a3 = new int[2][3];
String[] a4 = new String[]{"a", "b", "c"};
System.out.println(a1.getClass().getName() == a2.getClass().getName());
//下面这段代码,编译为什么通不过?
System.out.println(a1.getClass() == a3.getClass());
//下面这段代码编译是可以通过的
System.out.println(a1.getClass().getName() == a3.getClass().getName());
复制代码
难道是我的Eclipse的问题?
作者:
蚂蚁搬家
时间:
2013-6-21 20:44
a1和a2都是一维整型数组,他们的字节码类型是一致的,所以他们的getName方法返回值比较结果是true,
作者:
蚂蚁搬家
时间:
2013-6-21 20:49
a3是二维整型数组,老师说只有相同维度、相同数据类型的数组,他们的字节码类型才是一致的,a1和a3的字节码类型不一致,无法比较,但他们的getName方法返回的都是String类型的字节码文件名字,可以比较,结果是false;
作者:
L.I.F.E
时间:
2013-6-22 17:53
java1.5之后,引入了泛型,不同类型的不具有可比性了!你可以把编译环境设置1.4
作者:
神之梦
时间:
2013-6-27 14:03
如果楼主问题已解决,请把“未解决”改为“已解决”,如果没有,可以继续追问,谢谢!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2