我有种明显的感觉,我又一次迷失了方向。几个月前,我建立了一个搜索代码并使用反射进行修改的系统。这很好用,现在我正在尝试重建系统并对它的某些方面进行概括。我想做的一件事是不了解最新计算中可能发生的变化。
例如,假设我正在执行一个Mario程序,然后按下一个按钮。游戏的状态已更改,但我们不知道如何。我想扭转这种影响,以便我可以回到过去并按另一个按钮。我的计划是:
外部化所有可能已对其产生影响的游戏类。存储所有非最终字段的值,包括静态值。
使用extern写出所有游戏对象。
进行更改。
使用extern写出所有游戏对象(以防我们稍后想跳回此状态)
重新读回更改前的状态。
从表面上看,这里有什么要爆炸的吗?这是一个好主意吗?还是一些静态场/奇怪的行为会让我搞砸?对于外部化,我实际上打算通过反射请求所有字段的列表,并以迭代顺序将它们写出,以免遗漏任何内容。
Mods-我使用标签序列化,因为外部化不是现有标签。希望没事。
编辑-我不需要局部变量的值,也不需要堆栈或堆。不过,这可能是以后要考虑的问题-特别是在更改之间可能已销毁的对象的存在/不存在。
本质上,我需要逆转一般的计算步骤。不知道这是否可能。
最佳答案
可能是我误解了您的问题,但在我看来,您正在寻找的是Aspect Oriented Programming。
如果您已经使用Spring
,则可以使用。不要试图重新发明轮子
关于java - 通过外部化进行逆向计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16040068/