黑马程序员技术交流社区

标题: 关于Object数组不能接受int数组的疑问 [打印本页]

作者: 倪杭乘    时间: 2012-5-16 18:35
标题: 关于Object数组不能接受int数组的疑问
张老师和毕老师的解释是Object不是int的父类,数组定义了类型,接受int类型不匹配
我的理解是一个数组能就接受他和他子类的数组
Object数组可以接受integer数组,那么1.5以后为什么没有执行自动装箱动作
自动装箱不一定在运算中
在学习集合的时候,将int的变量存入到了集合中就是自动装箱,集合中不能存放基本数据类型
那我就想在这里为什么不能自动装箱,将int类型数组中的各个元素装箱了integer类型,整个数组就是integer类型,就能被Object数组接受
是没有必要还是理解有问题

那么装箱又是在哪些情况下进行,除了一些元算和存入到集合中?

作者: 赵玮_Tom    时间: 2012-5-16 18:50
虽然自动装箱和拆箱实现了基本数据类型和包装类型的自动转换,但int和Integer毕竟是两个不同的类型。
之所以在向集合存入元素时可以自动装箱,是因为集合对存入的元素的类型不做限定,只要是引用数据类型就可以往集合里存,但不能存储基本数据类型。后期出现泛型后,可以指定某个集合只存储某类元素,那么当你向集合存入int类型数据时,会自动包装成Integer类型(因为集合中不能存储int类型数据)。
而对于一个数组而言,既可以存储基本数据类型,又可以存储引用数据类型。int类型的数组和Integer类型的数组绝对是两个概念,所以不会进行自动装箱。
针对楼主的问题:int类型的数字可以自动装箱为Integer类型数据,但int类型的数组绝对不会自动转为Integer类型数组




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2