为什么在Java中将数组声明为对象是正确的?

Raj*_*mar 12 java

以下表达式编译:

Object oa = new float[20]; 
Run Code Online (Sandbox Code Playgroud)

这个表达式有效吗?

根据我的观点,正确的语法将是

Object [] oa = new float[20]; 
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 33

数组是Java中的对象.因此浮点数组是一个对象.

BTW Object o = new Object[20];也是有效的,因为对象数组是一个对象.

另请注意,这Object[] oa = new float[20];是无效的,因为原始浮点数不是对象,因此浮点数组不是对象数组.什么是正确的

Object[] oa = new Float[20];
Run Code Online (Sandbox Code Playgroud)

关于数组,因为它们是对象,所以它们具有java.lang.Object的所有方法.它们还具有public final属性length,它们是Cloneable和Serializable:

Object o = new float[20];
System.out.println("o instanceof Serializable = " + (o instanceof Serializable)); // true
System.out.println("o instanceof Cloneable = " + (o instanceof Cloneable)); // true
Run Code Online (Sandbox Code Playgroud)

  • 就在这里.float []的类型为float [],但也包含Object,Serializable和Cloneable. (2认同)