有什么方法可以撤销 Java 中方法调用的影响吗?我正在尝试解决以下问题。我有一组 Java 对象,我们称它们为 object1、object2 等。在我的程序中,我按以下顺序调用这些对象中的方法:
...
对象1.方法1();//我假设 JVM 知道调用前后的内部状态
对象2.方法1();
对象1.方法2(); ...
我想实现程序的初始状态,而不必自己知道方法调用实际做了什么。 JVM 是否允许我回到调用 object1.method1() 之前的状态?
我知道这意味着我需要执行以下操作:
...
object1.UNDOmethod2();
object2.UNDOmethod1();
object1.UNDOmethod1();
...
但我正在寻找一种无需自己编写撤消方法的解决方案?我假设 JVM 会有执行此操作的信息。这可能吗?
感谢一百万。
最佳答案
考虑使用 Software Transactional Memory 的 Java 实现,例如 Deuce STM .具体来说,Deuce 依赖于使用 Java 工具。如果您可以将您的实现更改为仅修改单个数据结构作为多个方法调用的结果,请考虑使用 Transactional Maps来自 Apache 。
关于java - 在 JVM 中支持 "Undo Method Calls",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5470838/