我正在开发一个仅在调用函数时才打印时间的程序。我正在使用计时器来连续添加秒数。
Timer gameTimer = new Timer ();
TimerTask time = new TimerTask() {
int sec = 0;
public void run()
{
sec++;
}
};
gameTimer.scheduleAtFixedRate(time, 1000, 1000);
但是,我不能在 run() 之外使用变量 sec,所以我可以打印它。我试图将 sec 放在 TimerTask 之外,但当然 sec++ 不起作用。有什么帮助吗?谢谢!
最佳答案
只需在原有界面的基础上制作自己的界面即可。 https://docs.oracle.com/javase/tutorial/java/IandI/nogrow.html
interface CustomTimerTask extends TimerTask {
public int getTicks();
}
CustomTimerTask time = new CustomTimerTask () {
int sec = 0;
@Override
public void run()
{
sec++;
}
@Override
public synchronized int getTicks() {
return sec;
}
};
System.out.println("The time passed is: " + time.getTicks());
只需确保同步即可,因为您现在正在使用两个线程。
关于java - 在 Timer 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44669275/