public static void randomN () {
int requestTime = 2;
if(requestTime > 0) {
requestTime--;
myTimer.scheduleAtFixedRate(new TimerTask() {
public void run() {
int randomx = (int) (Math.random()*6+1);
int randomy = (int) (Math.random()*6+1);
System.out.println("Requests" + "X : " + randomx + " Y: " + randomy);
}
}, 0, 1000);
} else {
myTimer.cancel();
myTimer.purge();
}
}
我希望我的计时器在 public void run() { ... } 内执行任务,并每秒执行一次,持续 2 秒。但这段代码无法正常工作。
最佳答案
在此代码中:
public static void randomN () {
int requestTime = 2;
if(requestTime > 0) { //..
无论您调用该方法多少次,在 if 语句时您的 requestTime 将始终为 2。我猜你想要
static int requestTime = 2;
public static void randomN () {
if(requestTime > 0) { //..
关于java - 计时器不会因 if else 而停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20167883/