A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 騛鹏 于 2013-4-4 00:38 编辑





为何cmd中 无法比较?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

5 个回复

正序浏览
騛鹏 发表于 2013-4-3 18:15
这是 比较 字节码啊 就是字节码是否相同

cmd中不是同一个类型啊,再看EClipse的代码和你cmd贴的代码是不是有区别?
回复 使用道具 举报
我手心里的宝 发表于 2013-4-3 18:07
这个单是在cmd中无法比较 这样不同类型的Class类型是不能做比较的
这两个你做比较是不兼容的操作类型
不同 ...

这是 比较 字节码啊 就是字节码是否相同


eclipse中可以比较啊
回复 使用道具 举报
无奈№追夜 发表于 2013-4-3 18:05
一维数组和二维数组不是同一类型的,不能比较,下面是测试代码你可以自己入到main方法里测试下下结果 ...

这是 比较 字节码啊 就是字节码是否相同
回复 使用道具 举报
这个单是在cmd中无法比较 这样不同类型的Class类型是不能做比较的
这两个你做比较是不兼容的操作类型
不同的.class对象时不能做比较的 这样编译器是不能通过
例如:String.class == Data.class
你这样做比较毫无意义,他们两个本来就是不同的对象,因而会报错

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
一维数组和二维数组不是同一类型的,不能比较,下面是测试代码你可以自己入到main方法里测试下下
  1.         @Test
  2.         public void  test7 (){
  3.                 int [] a = new int []{1,2,3,};
  4.                 int [][]b = new int[2][3];
  5.                 int [] c = new int []{1,4,3,};
  6.                 System.out.println(a.getClass()+" | "+b.getClass()+" | "+c.getClass());
  7.                 boolean m = a.getClass().isInstance(b);
  8.                 boolean n = a.getClass().isInstance(c);
  9.                 System.out.println(m+"|"+n);
  10.         }
复制代码
结果
  1. class [I | class [[I | class [I
  2. false|true
复制代码

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马