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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

int[] a1=new int[3];
                int[] a2=new int[4];
                int[][]a3=new int[2][4];
                String[] a4=new String[]{"d","h","d","g"};
                System.out.println(a1.getClass() == a2.getClass());
                //System.out.println(a1.getClass() == a3.getClass());
                //System.out.println(a1.getClass() == a4.getClass());
为什么这两行编译不同过啊?  返回的不应该是Class吗?  怎么会类型不兼容呢?

2 个回复

倒序浏览
System.out.println(a1.getClass() == (Object)a3.getClass());
System.out.println((Object)a1.getClass() == a4.getClass());

这么写就对了,试出来的.
回复 使用道具 举报
这是编译报错,你用的比以前的东西高级了,后面两个明显因为是类型都不对,答案是false的就直接编译就报错了
再说明白点,编译器版本高了聪明了,觉得这种问题低级所以不想让你编译通过了
如果希望看到老师视频中讲的那样出现false,照着下面修改下jdk编译器的版本
找到工程文件右键,选择属性properties



然后将编译器调成1.5之前的版本,我这里选了1.4的




最后再来看下,编译通过,运行结果如下


评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马