黑马程序员技术交流社区
标题:
反射字节码对象比较问题
[打印本页]
作者:
宋旭东
时间:
2013-7-2 22:47
标题:
反射字节码对象比较问题
今天听张孝祥老师讲反射,然后自己试了一下代码 竟然出现下面的问题,真是搞不懂
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());
作者:
谢孔营
时间:
2013-7-3 08:59
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());
//下面这段代码,编译为什么通不过
?//因为是生成字节码对象的类型不一样,一个是一维数组,一个是二维数组。如果是把a3改为a2就OK.还不理解的话,就像 int i = 0;String str = "kk";System.out.println(i == str);,一样。类型不一致是不能比较的。
//System.out.println(a1.getClass() == a3.getClass());
//下面这段代码编译是可以通过的
System.out.println(a1.getClass().getName() == a3.getClass().getName());
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2