Если у меня есть класс:
public class MyType
{
private List<Integer> data;
private boolean someFlag;
public MyType(List<Integer> myData, boolean myFlag)
{
this.data = myData;
this.myFlag = someFlag;
}
}
Теперь, если я создаю экземпляр MyType, как мне сделать его полную копию? Я не хочу, чтобы новый объект указывал на старую ссылку, но совершенно новый экземпляр.
Это тот случай, когда я должен реализовать интерфейс Cloneable, или он используется для мелких копий?
Я не могу просто сделать:
MyType instance1 = new MyType(someData, false);
MyType instance2 = new MyType(instance1.getData(), instance1.getFlag());
Я обеспокоен новыми экземплярами MyType, указывающими на ту же ссылку для его переменной «data». Поэтому мне нужно полностью скопировать его.
Итак, если у меня есть существующий объект:
MyType someVar = new MyType(someList, false);
// Now, I want a copy of someVar, not another variable pointing to the same reference.
Может ли кто-нибудь указать мне правильное направление?