我刚刚学习 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中一定是一个非常常见的问题,其他人如何解决它?
最佳答案
正如您所指出的,要么是深层复制,要么可能是序列化。您可以存储序列化字符串,然后从中重建对象。
关于java - 在 Java 中恢复旧对象状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15051988/