Клонирование редко бывает хорошей идеей в Java. Попробуйте другие методы, такие как конструкторы копирования или фабричные методы.
В Википедии есть хорошая статья о том, почему clone()
имеет много недостатков в Java.
Используя конструкторы копирования, создайте конструктор, который принимает экземпляр текущего класса в качестве параметра, и скопируйте все поля в локальном классе:
public class Foo {
private String bar;
private String baz;
public Foo(Foo other) {
this.bar = other.bar;
this.baz = other.baz;
}
}
Используя фабричные методы, создайте метод, который принимает ваш объект в качестве параметра и возвращает объект, содержащий те же значения:
public Foo copyFoo(Foo other) {
Foo foo = new Foo();
foo.setBar(other.getBar());
foo.setBaz(other.getBaz());
}