我只是在学习 Java,但我一遍又一遍地遇到同样的问题
如何有效地恢复到某个对象的旧状态?
public class Example {
MyObject myLargeObject;
public void someMethod(){
MyObject myLargeMyObjectRecovery = myLargeObject;
/**
* Update and change myLargeObject
*/
if(someCondition){
//revert to previous state of myLargeObject
myLargeObject = myLargeMyObjectRecovery;
}
}
}
以上是我希望代码如何工作,但显然不是,因为 myLargeObject 和 myLargeObjectRecovery 是对同一个对象的引用。
一种解决方案是创建一个复制构造函数。这对于小对象来说很好,但如果我有一个大对象(在我的项目中,对象是一个大的二维数组,这意味着我必须遍历所有条目),这种方式感觉不对。
这在Java中一定是一个很常见的问题,其他人是怎么解决的呢?