int arr[] = new int[2];
Object obj = arr;
以上代码有效但写作
Object obj[] = new Object[2];
int arr = obj;
给出编译时错误。为什么?我是Java的新手;任何人都能解释一下吗?
答案 0 :(得分:1)
第一个是有效的,因为在Java中:数组是一个对象。
数组是一个容器对象,它包含固定数量的单个类型的值。
但是,第二个,Object
数组不是int
,这就是它失败的原因。
答案 1 :(得分:0)
答案 2 :(得分:0)
所有Arrays
都是Objects
。但所有Objects
都不是arrays/ints
。
int arr[]=new int[2];
Object obj=arr;// valid . an int array is also an Object
Object obj[]=new Object[2];
int arr=obj; // an int is not an Object array
答案 3 :(得分:0)
在第一种情况下,您创建的数组继承自Object,因此它可以按预期工作。
在第二种情况下,Java中的整数是基本类型,并且您尝试分配对象。原始类型不是Object,因此它永远不会起作用。