黑马程序员技术交流社区
标题:
Class<T>
[打印本页]
作者:
李杰鹏
时间:
2012-12-23 12:22
标题:
Class<T>
本帖最后由 李杰鹏 于 2012-12-23 19:28 编辑
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() == a2.getClass());
System.out.println(a1.getClass()==a3.getClass());//出错 Incompatible operand types Class<capture#8-of ? extends int[]> and Class<capture#9-of ? extends int[][]>
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>,这样有什么意义?
作者:
张占忠
时间:
2012-12-23 14:44
System.out.println(a1.getClass()==a3.getClass());
int [] a1 int[][] a3
一个是 ,一维数组,一个是二维数组!两个比较系统不兼容的!
System.out.println(a1.getClass()==a4.getClass());//
int [] a1 String [] a4
一个是 int 一个是 String ,虽然,数组,长度相等,但是类型不一样啊!
所以系统也是,不兼容的!所以,可能是你打错了!
作者:
张占忠
时间:
2012-12-23 14:45
建立,LZ, 下载一个Eclipse , 进行程序编译!这样,会提示错误,方便修改!
作者:
陈进
时间:
2012-12-23 15:56
应该是二者之间不兼容出现的吧
作者:
filter
时间:
2012-12-23 17:13
已用Eclipse测试,代码没问题
打印结果:true false false
a1,a2都是一维整数数组,所以class对象也相同
a3是二维的,a4是字符串数组,所以a3 != a4
数组维数不一样,数据类型不一样,class对象都不会相同
作者:
李杰鹏
时间:
2012-12-23 19:27
恩恩..谢谢了..我懂了..感谢..
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2