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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹冬明 中级黑马   /  2014-4-20 00:50  /  1373 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int[] a1 = new int[3];
  2.                 int[] a2 = new int[4];
  3.                 int[][] a3 = new int[2][3];
  4.                 String[] a4 = new String[4];
  5.                
  6.                 System.out.println(a1.getClass() == a2.getClass());
  7.                 System.out.println(a1.getClass() == a4.getClass());
  8.                 System.out.println(a1.getClass() == a4.getClass());
复制代码


为什么我看张老师的视频就可以编译通过,我的就不行呢,报这个异常
Incompatible operand types Class<capture#4-of ? extends int[]> and Class<capture#5-of ? extends String[]>
        Incompatible operand types Class<capture#6-of ? extends int[]> and Class<capture#7-of ? extends String[]>

点评

我也有些纳闷  发表于 2014-4-20 02:05

4 个回复

倒序浏览
本帖最后由 悠然丶 于 2014-4-20 09:45 编辑

        int[] a1 = new int[3];
        int[] a2 = new int[4];
        int[][] a3 = new int[2][3];
        String[] a4 = new String[4];
      
        System.out.println(a1.getClass() == a2.getClass());
        System.out.println(a1.getClass().equals( a4.getClass()));//把==改成equals就可以了,你的a4是String[]类型的.不能直接比较
        System.out.println(a1.getClass().equals(a4.getClass()));
回复 使用道具 举报
悠然丶 发表于 2014-4-20 09:37
int[] a1 = new int[3];
        int[] a2 = new int[4];
        int[][] a3 = new int[2][3];

我比较的是字节码,而且张孝祥老师在视频里就这样用的,没问题,我就有问题
回复 使用道具 举报
看来很多同学都有这个疑问,那就干脆再复制黏贴过来算了,不知道兄弟你的这个问题是否得到了解决,引用我之前的回答


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



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




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

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