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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 清秋 黑马帝   /  2011-11-28 14:45  /  2708 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 清秋 于 2011-11-28 20:18 编辑
  1.        
  2.                 int[] a1 = new int[3];
  3.                 int[] a2 = new int[4];
  4.                 int[][] a3 = new int[2][3];
  5.                 String[] a4 = new String[3];
  6.                
  7.                 System.out.println(a1.getClass() == a2.getClass());
  8.                 System.out.println(a1.getClass() == a4.getClass());//①
  9.                 System.out.println(a1.getClass() == a3.getClass());//②

复制代码
提示

Description        Resource        Path        Location        Type
Incompatible operand types Class<capture#10-of ? extends int[]> and Class<capture#11-of ? extends int[][]>        ReflectTest.java        /javaenhance/src/cn/itcast/day1        line 75        Java Problem


刚刚谷歌过,发现也有人问这个问题。没看懂。继续求解

评分

参与人数 1技术分 +1 收起 理由
admin + 1 问题已解决,我建议把答案也告诉大家把!.

查看全部评分

10 个回复

倒序浏览
清秋 黑马帝 2011-11-28 15:27:19
沙发
System.out.println(a4.getClass());
这句的输出结果为  class [Ljava.lang.String

视频里为什么编译通过了。。。
回复 使用道具 举报
不报错啊,一个true两个false。你怎么会报错呢?
回复 使用道具 举报
清秋 黑马帝 2011-11-28 15:36:51
板凳
侯伟浩 发表于 2011-11-28 15:36
不报错啊,一个true两个false。你怎么会报错呢?

...确实报错...
回复 使用道具 举报
清秋 发表于 2011-11-28 15:36
...确实报错...

我刚刚复制的你的代码试的,一点事没有啊
回复 使用道具 举报
清秋 黑马帝 2011-11-28 15:50:29
地板
侯伟浩 发表于 2011-11-28 15:38
我刚刚复制的你的代码试的,一点事没有啊

...
  1. package cn.itcast.day1;

  2. public class test {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.         
  9.         int[] a1 = new int[3];
  10.         int[] a2 = new int[4];
  11.         int[][] a3 = new int[2][3];
  12.         String[] a4 = new String[3];
  13.         
  14.         System.out.println(a1.getClass() == a2.getClass());
  15.         System.out.println(a1.getClass() == a4.getClass());//①
  16.         System.out.println(a1.getClass() == a3.getClass());//②

  17.         }

  18. }
复制代码
单列出来也不行。。你JDK什么版本的
回复 使用道具 举报
侯伟浩 黑马帝 2011-11-28 16:39:27
7#
1.6的。这应该和jdk版本没关系吧。
回复 使用道具 举报
清秋 黑马帝 2011-11-28 18:21:25
8#
侯伟浩 发表于 2011-11-28 16:39
1.6的。这应该和jdk版本没关系吧。

不清楚。我用的是1.7的。

问题在哪里就不知道了
回复 使用道具 举报
侯伟浩 黑马帝 2011-11-28 20:15:30
9#
jdk出1.7了?
回复 使用道具 举报
jianbin65 黑马帝 2011-11-28 22:13:58
10#
我这是样搞的:你用System.out.println(a1.getClass())分别输出他们的类型,发现,这些返回的值后,感觉”==“应该换成equals。个人观点

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
清秋 黑马帝 2011-11-29 09:54:39
11#
本帖最后由 清秋 于 2011-11-29 09:56 编辑

  1. /**
  2. * @author Tina
  3. *
  4. */
  5. public class test {
  6.         public static void main(String[] args) {
  7.         int[] a1 = new int[3];
  8.         int[] a2 = new int[4];
  9.         int[][] a3 = new int[2][3];
  10.         String[] a4 = new String[3];
  11.         
  12.         System.out.println(a1.getClass() == a2.getClass());        //true
  13.                
  14.                 System.out.println("------------------------------");
  15.                 //System.out.println(a1.getClass() == a4.getClass());
  16.                 //System.out.println(a1.getClass() == a3.getClass());               
  17.                 System.out.println("------------------------------");
  18.                
  19.                 System.out.println(a4.getClass().getName());        //[Ljava.lang.String;
  20.                 System.out.println(a4.getClass());                                        //class [Ljava.lang.String;
  21.                 System.out.println(a4.getClass().toString() == a1.getClass().toString());        //false               
  22.                
  23.                 System.out.println(a4.getClass().equals(a1.getClass()));        //false
  24.                 System.out.println(a1.getClass().equals(a3.getClass()));        //false
  25.         }
  26. }
复制代码
贴上代码。其中,注释的两行在我的电脑上还是编译不通过的。
使用equals能解决问题。Java中的“==”和“equals”还是有区别的

至于,为什么别人机子上能通过注释的两行代码我就不清楚了。个人知识有限。也只能理解到这里。

如果大家有时间,可以测试下。贴出自己的结果吧。还有自己的理解吧

评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

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