java - 在 Java 中恢复旧对象状态

标签 java oop

我刚刚学习 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/

相关文章:

java - 为什么我无法在 JDBC 中分析 SHOW TABLES 结果?

java - Java 中的泛型是什么?

java - 从另一个方法访问变量

javascript - JavaScript 上的火星到漫游者。我需要能够向流动站发出一系列命令并按顺序执行它们。

Java, "pointer"相等与字符串比较

java - Junit for 循环执行计数

java - 为什么Java ImageIcon不进入catch子句?

c++ - 我在这里使用全局状态吗,有没有更好的方法来做到这一点?

php - Context::getContext() 如何在 Prestashop Bankwire 模块中使用

java - Spring集成(MQTT): Retrieving published message