int[] a1 = new int[]{1,2,3}; int[] a2 = new int[4]; int[][] a3 = new int[2][3]; String [] str = new String[]{"a","b","c"}; //同类型同维数的数组的Class对象都是一个 System.out.println(a1.getClass() == a2.getClass()); //true System.out.println(a1.getClass() == a3.getClass()); //false System.out.println(a1.getClass() == str.getClass()); //false 最后两行代码出错,老师上面没错,错误提示Incompatible operand types Class<capture#9-of ? extends int[]> and Class<capture#10-of ? extends int[][]> 类型不匹配。这个是因为编译时使用JDK版本不同是吗? 我试过将JDK版本改成1.5以下上面代码可以编译通过,但是基础加强工程下面还有些类编译就不会通过了,因为使用了1.5新特性(自动装箱,静态导入,泛型等等)。 老师上面怎么所有的类都能编译通过呢?是不是可以设置单个类的编译JDK版本?我试过不可以,老师用的是哪个版本的JDK? |