Почему объявление массива как объекта корректно в Java?
Следующее выражение компилируется:
Object oa = new float[20];
Как это выражение действительно?
По моему мнению, правильный синтаксис будет
Object [] oa = new float[20];
Ответ 1
Массивы - это объекты в 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
Ответ 2
В принципе, Object - суперкласс для всех объектов в Java. Итак, сделайте ссылку класса Object, а затем используйте его, как и любой другой объект.
Object ob = new Integer(5);
Массивы в Java - это не что иное, как объекты, поэтому ссылка класса Object может быть назначена массиву.