Jon Skeet が交換可能なクロックを使用することを提案しているJava System.currentTimeMillisをオーバーライドする方法に関するこの素晴らしい質問の後、私はそれが Timer クラスでどのように機能するかを考えていました。
// Clock() is replacing Date()
Date workTime = new Clock().plusSeconds(30).toDate();
Timer timer = new Timer();
timer.schedule(new ExampleClass(), workTime);
時計の時刻が過去の場合Timer()
、理想的にはClock()
、現在の時刻に 30 秒を加えた値が返されるまで待機しますが、システム クロックを使用してメソッドを瞬時に起動します。
これに対処するための最良のアプローチは何ですか?
すべてを上書きし続けるよりも、もう少し実用的な答えを求めていました...