Как Object [] клонируется - PullRequest
       16

Как Object [] клонируется

4 голосов
/ 12 апреля 2010
Object[] o = new Object[]{};
System.out.println(o instanceof Cloneable);

Это дает true как o / p. Я не мог понять, почему?

Ответы [ 2 ]

10 голосов
/ 12 апреля 2010

Все массивы в Java являются клонируемыми и сериализуемыми.

Клон в массиве просто копирует массив (поверхностное копирование, не клонируя содержимое).

4 голосов
/ 12 апреля 2010

Массивы поддерживают (мелкое) клонирование, в основном.

С раздел 10.7 JLS :

Члены типа массива все из следующего:

  • Публичная конечная длина поля, которая содержит количество компонентов массив (длина может быть положительной или ноль).
  • Открытый метод clone, который переопределяет метод с тем же именем в классе Object и выбрасывает не проверено исключения. Тип возвращаемого значения метод клонирования типа массива T [] T [].
  • Все члены, унаследованные от класса Object; единственный метод объекта, который не наследуется - это его метод клонирования.

и

Каждый массив реализует интерфейсы Cloneable и java.io.Serializable.

...