java - 在 JVM 中支持 "Undo Method Calls"

标签 java jvm

有什么方法可以撤销 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/

相关文章:

java - 如何捕获 Runnable 中的封闭范围

java - 常规变量的 ObservableList 概念(无 TableView)

java - 监听器如何在 Java 中工作,它们位于何处,内存管理是什么?

java - JVM监控char数组内存使用情况

java - JVM是否因为networkaddress.cache.ttl设置而缓存url?

java - 碰撞事件

java - 如何对需要时间执行操作的线程进行单元测试

java - 用paint实例化一个类来制作一个正方形

java - Java 中 .class 文件的用途

java - JVM退出代码10的含义