Я просто писал код, и мне это пришло в голову. Я создаю объект Timer и планирую повторение задачи через timer.scheduleAtFixedRate(...)
.Java Object init() и класс Timer
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
. Поскольку моя начальная задержка составляет ноль, , и после создания моего таймера происходит больше вещей, которые появляются в конструкторе, как я узнаю, что первый вызов моего таймера не произойдет до Инициализация объекта завершена ? Или, возможно, это может быть так (что, конечно, не будет хорошо)?
На данный момент мое решение заключается в том, что установка моего таймера - это конечный шаг конструктора, но это в лучшем случае выглядит, если это возможно. Любая мудрость в отношении этой проблемы?
Offtopic: Вы можете просто использовать '' 0L' и 1000L' вместо литья с '(длинный)' – Doorknob
Может быть, вы можете попробовать добавить 'trifle' оттянуть – kyriosli