黑马程序员技术交流社区
标题:
报错了,不解!
[打印本页]
作者:
qmlovewhr
时间:
2013-8-7 17:26
标题:
报错了,不解!
int []a1=new int[3];
int []a2=new int[2];
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());
}
为什么:System.out.println(a1.getClass()==a2.getClass());
System.out.println(a1.getClass()==a4.getClass());
这两句在我的软件中报错,这是为什么,难道是软件的问题,还是哪方面的设置问题??
作者:
吴光新
时间:
2013-8-8 06:49
a1、a2、a3都属于基本数据类型,
a4则是类类型,
你比较的其实是比较他们各自的Class对象,就算比较的是他们的本身,比较的都是内存地址,
所以你用双等号==或者equals比较结果都是一样的,但是用双等号进行比较时,除非是同一类型才能比较。
作者:
x.love
时间:
2013-9-4 21:50
==两边的类型不一样呀!编译的时候就会报错。Incompatible operand types Class<capture#3-of ? extends int[]> and Class<capture#4-of ? extends String[]>
作者:
赖龙威
时间:
2013-10-2 00:24
两边不是同一个类。。就好比System.out.println(new Thread()== new Random());。这样的是不允许的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2