Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-将数组分配给对象引用_Java_Arrays_Object - Fatal编程技术网

Java-将数组分配给对象引用

Java-将数组分配给对象引用,java,arrays,object,Java,Arrays,Object,为什么我可以将数组指定给对象引用 Object x = (Object) new int[] { 1, 2, 3 };// no error Object y = new int[] { 1, 2, 3 };//no error java数组是否继承类似于类的对象 我希望这会给我一个编译时错误 这样做: System.out.println(x.toString() + " " + x.getClass().getName() + " " + x.getClass().getTypeName(

为什么我可以将数组指定给对象引用

Object x = (Object) new int[] { 1, 2, 3 };// no error
Object y = new int[] { 1, 2, 3 };//no error
java数组是否继承类似于类的对象

我希望这会给我一个编译时错误

这样做:

System.out.println(x.toString() + " " + x.getClass().getName() + " " + x.getClass().getTypeName());
结果:

[I@15db9742 [I int[]
java数组是否继承类似于类的对象

是的,因为数组是类的实例,就像其他对象一样。这就是为什么它们有hashCode、toString和getClass,它们从Object继承它们

发件人:

数组类型的超类型关系与超类关系不同。根据§4.10.3,整数[]的直接超类型是数字[],但根据整数[]§10.8的类对象,整数[]的直接超类是对象。这在实践中并不重要,因为对象也是所有数组类型的超类型

我的重点

可能与以下方面有关:

数组类型的变量保存对对象的引用


所有数组原语数组或对象数组都是对象。

根据:

在Java编程语言中,数组是§4.3.1中的对象,是 动态创建,并可分配给Object类型的变量 §4.3.2. 类对象的所有方法都可以在数组上调用