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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lcjasas 中级黑马   /  2013-4-9 15:55  /  1255 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 lcjasas 于 2013-4-10 12:53 编辑

                int[] a1 = new int[3];
                int[] a2 = new int[4];
                int[][] a3 = new int[2][3];
                String[] a4 = new String[3];
                System.out.println(a1.getClass() == a2.getClass());
//                System.out.println(a1.getClass() == a4.getClass());
//                System.out.println(a1.getClass() == a3.getClass());
。。。为什么最后面两句代码,字节码的判断,编译不能通过呢?。。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

1 个回复

倒序浏览
本帖最后由 郭华章 于 2013-4-9 16:47 编辑

张老师的教程上说过,编译器发现a1、a3、a4不是一种类型,故产生
操作数类型 Class<capture#5-of ? extends int[]> 和 Class<capture#6-of ? extends int[][]> 不兼容的问题,因为编译器是一行一行的读的,如果你分开写,如下:
    Class aa1=a1.getClass();
    Class aa4=a4.getClass();
    System.out.println(aa1 == aa4);
就可以通过了编译器了

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

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