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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 liujkh123 于 2013-6-27 16:10 编辑

今天听张孝祥老师讲反射,然后自己试了一下代码 竟然出现下面的问题,真是搞不懂
  1. int[] a1 = new int[] {1, 2, 3};
  2.                 int[] a2 = new int[] {1, 2, 3, 4};
  3.                 int[][] a3 = new int[2][3];
  4.                 String[] a4 = new String[]{"a", "b", "c"};
  5.                
  6.                 System.out.println(a1.getClass().getName() == a2.getClass().getName());
  7.                 //下面这段代码,编译为什么通不过?
  8.                 System.out.println(a1.getClass() == a3.getClass());
  9.                 //下面这段代码编译是可以通过的
  10.                 System.out.println(a1.getClass().getName() == a3.getClass().getName());
复制代码
难道是我的Eclipse的问题?

评分

参与人数 2技术分 +2 收起 理由
Just_Only + 1 神马都是浮云
神之梦 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
a1和a2都是一维整型数组,他们的字节码类型是一致的,所以他们的getName方法返回值比较结果是true,
回复 使用道具 举报
a3是二维整型数组,老师说只有相同维度、相同数据类型的数组,他们的字节码类型才是一致的,a1和a3的字节码类型不一致,无法比较,但他们的getName方法返回的都是String类型的字节码文件名字,可以比较,结果是false;
回复 使用道具 举报
java1.5之后,引入了泛型,不同类型的不具有可比性了!你可以把编译环境设置1.4
回复 使用道具 举报
如果楼主问题已解决,请把“未解决”改为“已解决”,如果没有,可以继续追问,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马