在这个关于如何覆盖 Java System.currentTimeMillis的好问题(Jon Skeet 建议使用可替换时钟的地方)之后,我正在考虑它如何与 Timer 类一起工作。
// Clock() is replacing Date()
Date workTime = new Clock().plusSeconds(30).toDate();
Timer timer = new Timer();
timer.schedule(new ExampleClass(), workTime);
如果时钟的时间是过去的,Timer()
将使用系统时钟并立即触发该方法,即使理想情况下,它会等到Clock()
返回当前时间加上 30 秒。
处理这个问题的最佳方法是什么?
我一直在寻找一个比继续覆盖这一切更实际的答案......