我希望在一定的延迟后调用特定的方法。我尝试了不同的方法,例如计时器、执行器或处理程序。他们完成了他们应该做的事情,但有一点例外。延迟的方法调用对番石榴的多图进行了一些更改。在run
TimerTask 的 -method 中,输出就像我想要的那样。但是,如果我在更改之外打印多图run
,我仍然有旧的多图值。但我需要更新的,因为我的数据保存在其中,我需要更新的值才能使用。
我的代码如下所示:
public class classTimer {
public static void main(String[] args) {
//some code, irrelevant for the task
new Timer().schedule(new TimerTask() {
@Override
public void run() {
dataMap = UndoManager.undoChanges(dataMap, a, hw);
// Point 1
}
}, delay);
// Point 2
}
}
就像我之前说的,dataMap
在 Point1 处打印会给出正确的输出,在 Point 2 处打印旧值,就像 MethodUndoChanges
被新调用一样。实现多图时,更改保持一致,通常值必须已更改,但此处并非如此。我在这里想念什么?如果有人知道延迟后调用方法的不同方法,我会很高兴听到它。
谢谢,非常感谢