По сути, у меня есть значение int, x, которое является переменной экземпляра класса. Первоначально он установлен в 0. У меня есть другой метод, getNum, который увеличивает и возвращает х. Этот метод getNum () вызывается внешней программой. Однако каждый день (скажем, в полночь, для простоты) я хочу сбросить x на 0. Как бы это сделать? Проблемы, с которыми я сталкиваюсь сейчас: Date (int, int, int) устарела, но метод принимает только даты, а не календари; событие TimerTask никогда не происходит; каждый раз, когда я запускаю программу внизу, она просто печатает «0» каждый раз, даже если число не должно постоянно сбрасываться. В принципе ничего не работает. Есть идеи, что не так?
import java.util.*;
class Foo {
private static void scheduleTimer() {
Timer timer = new Timer();
long c = 86400000;
timer.scheduleAtFixedRate(new MyTimerTask(),
new Date(2011, 7, 31), c);
}
public static int getNum() { return x++; }
private static int x = 0;
public static void resetNum() { x = 0; }
}
class MyTimerTask() extends TimerTask {
public void run() {
Foo.resetNum();
}
public class Bar { // in a separate file
public static void main (String[] args) {
System.out.println(Foo.getNum());
}
}