本帖最后由 颜秉武 于 2011-12-13 22:52 编辑
- int[] a1 = new int[3];
- int[] a2 = new int[4];
- String[] a3 = new String[3];
- int[][] a4 = new int[3][2];
- System.out.println(a1.getClass() == (a2.getClass()));
- System.out.println(a1.getClass().equals(a4.getClass()));
- System.out.println(a1.getClass().equals(a3.getClass()));
复制代码 这段代码是按张老师java基础加强视频中 24_黑马程序员_张孝祥_Java基础加强_数组与Object的关系及其反射类型.avi 的一段代码编写的,但源码是这样的- int[] a1 = new int[3];
- int[] a2 = new int[4];
- String[] a3 = new String[3];
- int[][] a4 = new int[3][2];
- System.out.println(a1.getClass() == (a2.getClass()));
- System.out.println(a1.getClass() == a4.getClass());
- System.out.println(a1.getClass() == a3.getClass());
复制代码 不知道为什么,占老师视频中a1.getClass() == a4.getClass() a1.getClass() == a3.getClass() 比较就是可以的,我得这样就不行,相同元素类型的数组的字节码比较可以,不同的会报错
Incompatible operand types Class<capture#18-of ? extends int[]> and Class<capture#19-of ? extends String[]> 这个错
用equals()就可以,错误我知道什么意思,jre我也更换版本试过,但是还是不行,我想知道为什么张老师可以,到我这就不行了呢? |