私はコードを書いていて、ふと思いつきました。Timer オブジェクトを作成し、 を介して繰り返しタスクをスケジュールしていますtimer.scheduleAtFixedRate(...)
。
public class MyClass {
..
public MyClass() {
Timer timer = new Timer(true);
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
doStuffEachSecond();
}
}, (long)0, (long)1000);
// more stuff
}
さて、doStuffEachSecond()
は のインスタンス メソッドMyClass
です。私の初期遅延はzeroであり、Timer の設定後にコンストラクターでさらに多くの処理が行われるため、オブジェクトの初期化が完了する前にタイマーの最初の呼び出しが発生しないことをどのように知ることができますか? それとも、そうなる可能性がありますか (もちろん、これは良くありません)?
今のところ私の解決策は、タイマーのセットアップがコンストラクターの最後のステップであることですが、それはせいぜい疑わしいようです。この問題に関する知恵はありますか?