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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴光新 黑马帝   /  2013-8-13 05:37  /  1282 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. //有两个数组:
  2. int[] a1 = new int[4];
  3. int[][] a2 = new int[2][3];

  4. //又有如下定义
  5. //Object[] aObj1 = a1;
  6. Object[] aObj2 = a2;
复制代码
第一个没通过,第二个可以!这是张老师第24节的内容,但他的解释我感觉很模糊,
基本类型的一维数组是不能转换为Object类型数组的,因为在aObj1那里Object这个数组里面装的是int类型的数组,不是Object,所以没通过,
但为什么就说基本类型的二维数组就可以转换为Object类型的数组?

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

1 个回复

倒序浏览
//有两个数组:
int[] a1 = new int[4];
int[][] a2 = new int[2][3];

//又有如下定义
//Object[] aObj1 = a1;
Object[] aObj2 = a2;
楼主你好,是这样的,
因为a1是一个一维int型数组,这个数组中存放的是int性数据,而把它赋给Object型数组(里面装的是对象)就会出错,因为他不会主动将int型数据自动装箱成Integer;
而a2是一个二维数组,就好像一维数组中存放int型一维数组,而里面存放的int型数组是一个对象,所以外面装这些一维数组的二维数组就可以赋值给obj2。
记住一点,什么类型的数组就只能赋值给什么样类型的数组;Object数组中存放对象,给他赋值的数组中也要存放对象。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

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