ディープコピーを行う場合は、明らかに参照をコピーしないでください。ただし、コピーされるオブジェクトに、それ自体が同じオブジェクトへの参照であるオブジェクトが含まれている場合は、それを維持するか、データをコピーするだけにする必要があります。
例
public class Program() {
public void Main(String[] args) {
Person person = new Person();
person.setName("Simon");
List<Person> people = new ArrayList<Person>();
people.add(person);
people.add(person);
people.add(person);
List<Person> otherPeople = magicDeepCopyFunction(people);
otherPeople.get(0).setName("Adam");
// should this output 'Adam' or 'Simon'?
System.out.println(otherPeople.get(1));
}
}
私は両方の議論を見ることができますが、私はコンセンサスが何であったか疑問に思っています。