java中基本类型数组 转换为 对象数组

有一点不是很懂,请问对象数组可以喝基本类型数组相互转发吗?
例如Objcet[] obj=new Object[4];
int[] a=new int[4];
请问a和obj能相互转化吗

希望能详细解答下,谢谢

所有Java中的对象都是Object的子类。所以子类是可以直接转换为父类。

但是,Object这个父类,并不是只有一个int类型。所以父类是不能转换为子类的。
举一个生动的例子:

狗 是动物,所以所有狗都是动物。狗的集合也是动物的集合。但是,动物不全都是狗啊。所以不能反向转换。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-23
int是基本数据类型,
但java提供了对于的包装类Integer。
换句话说int可以转换为Integer。
因为Integer是个类,所以父类是Object.
所以obj=a是可以的。追问

Object[] obj=new Object[4];
int[] c={3,4,5,6};
obj=c;

这个小例子编译是通不过的,能给举个合适的例子吗,

第2个回答  2012-10-23
objcet包含所有的类型,a能转成obj。obj能强转a,但包含非int型会报错
第3个回答  推荐于2016-03-01
修改一下答案。。
这么说比较好
数组之间的强制造型在语法上是可以的,但由于数组这东西本身没有继承关系,所以实际运行过程中不会运行成功追问

Object[] obj=new Object[4];
int[] c={3,4,5,6};
obj=c;

对啊,这个例子编不过,能举个合适的例子吗?或者说,根本就没有可能性编过吧?

追答

Integer[] a = new Integer[4];
Object[] obj = new Object[4];
a = (Integer[])obj;
可以编译通过,但是运行不了

追问

这意思就是,像int[]这种基本类型的数组,根本就没有可能转化为 Object[]的对象数组吧。

追答

嗯,就怎么转都不行。
关键问题是,似乎根本就没有需要用到这种转换的场景

本回答被提问者和网友采纳
相似回答