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

时间:2014-07-26 08:09:55

标签: java

以下表达式编译:

Object oa = new float[20]; 

这个表达式有效吗?

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

Object [] oa = new float[20]; 

2 个答案:

答案 0 :(得分:33)

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

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

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

Object[] oa = new Float[20];

关于数组,因为它们是对象,所以它们具有java.lang.Object的所有方法。它们还有一个公共最终属性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

答案 1 :(得分:3)

基本上,Object是Java中所有对象的超类。因此,引用Object类然后将其用作任何其他对象是有效的。

Object ob = new Integer(5);

Java中的数组只是对象,因此可以为Object类的引用分配一个数组。