黑马程序员技术交流社区
标题:
有个问题含糊了!
[打印本页]
作者:
吴光新
时间:
2013-8-13 05:37
标题:
有个问题含糊了!
//有两个数组:
int[] a1 = new int[4];
int[][] a2 = new int[2][3];
//又有如下定义
//Object[] aObj1 = a1;
Object[] aObj2 = a2;
复制代码
第一个没通过,第二个可以!这是张老师第24节的内容,但他的解释我感觉很模糊,
基本类型的一维数组是不能转换为Object类型数组的,因为在aObj1那里Object这个数组里面装的是int类型的数组,不是Object,所以没通过,
但为什么就说基本类型的二维数组就可以转换为Object类型的数组?
作者:
xkfxm
时间:
2013-8-13 08:17
//有两个数组:
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数组中存放对象,给他赋值的数组中也要存放对象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2