Интерфейс java.lang.Cloneable — копирование объектов в Java

У объекта java.lang.Object есть метод protected Object clone() throws CloneNotSupportedException. Этот метод позволяет создавать копии объектов. Он бросает исключение CloneNotSupportedException для всех объектов, которые не реализуют интерфейс java.lang.Cloneable,  а для классов, реализующих этот интерфейс, возвращает копию объекта, которая создана копированием всех полей исходного объекта. Содержимое полей не копируется. Если поле является ссылочным, то оно будет указывать на тот же самый объект, что и исходное поле.

Во многих случаях простого копирования недостаточно, так как некоторые поля могут содержать сложные структуры, для которых нужно создать копию, чтобы объекты были действительно независимы. А они должны быть независимы, так как это копирование. Тогда нужно будет переопределить метод копирования своим методом, вызвать super.clone() и создать копии структур для тех полей, которые содержат эти сложные изменяемые структуры. Массивы уже реализуют интерфейс java.lang.Cloneable.

Пример класса, реализующего интерфейс java.lang.Cloneable:

Код выше будем иметь примерно такой вывод в консоль:

 


Поделиться:
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован.

*