黑马程序员技术交流社区

标题: 一个问题跪求解决 [打印本页]

作者: 李会成    时间: 2013-1-28 15:46
标题: 一个问题跪求解决
本帖最后由 李会成 于 2013-2-18 11:43 编辑

  1.         int [] a1 = new int[2];
  2.         int [] a2 = new int[3];
  3.         int[][] a3 = new int[2][3];
  4.         String [] a4 = new String[2];
  5.         System.out.println(a1.getClass() == a2.getClass());
  6.         System.out.println(a1.getClass()==a3.getClass());//出错 Incompatible operand types Class<capture#8-of ? extends int[]> and Class<capture#9-of ? extends int[][]>
  7.         System.out.println(a1.getClass()==a4.getClass());//出错 Incompatible operand types Class<capture#10-of ? extends int[]> and Class<capture#11-of ? extends String[]>
复制代码
照理来说,每一种类的字节码对应下来应该只是Class类的一个实例对象,那为什么还要对Class类定义泛型呢?比如String.class 的类型是Class<String>,这样有什么意义?
作者: 舒远    时间: 2013-1-28 16:00
编译器版本不一样。
换成1.4的版本就可以编译通过
作者: 李跃达    时间: 2013-1-28 17:17
编译器版本问题,1.5以上才支持泛型
作者: 黑马-周科    时间: 2013-1-28 17:37
代码就一部分,最后的结果不知道。
最后是比较。看下“==”和“equals”的却别。==改成equals全部通过。不知道和楼主的题意是否相符合。
        int [] a1 = new int[2];
        int [] a2 = new int[3];
        int[][] a3 = new int[2][3];
        String [] a4 = new String[2];
        System.out.println(a1.getClass().equals(a2.getClass()));
        System.out.println(a1.getClass().equals(a3.getClass()));
        System.out.println(a1.getClass().equals(a4.getClass()));




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2