如何使用TimerTask调度方法,但第一次使用不同的方法参数



这是我第一次在美丽而棒极了的StackOverflow社区发布内容,我的英语有点生疏,但我会尽力解释。

我有以下情况:

在我的主体中,我通过TimerTask调用一个方法,因为我需要对它进行调度,以便该方法每5秒执行一次。这是我的主菜:

public static void main(String[] args) {
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {

@Override
public void run() {
methodWithParams("HelloWorld");
}
};

timer.scheduleAtFixedRate(timerTask, 0, 5000);
}

这里是调用的方法:

public static void methodWithParams(String param){
System.out.println("Incoming Param: "+param);
}

这样,每5秒输出如下:

Incoming Param: HelloWorld

我想要的是每5秒运行一次methodWithParams方法,但第一次调用该方法时,我可以用一些参数调用它,但其余时间参数都是其他参数,所以结果如下:

Incoming Param: HelloWorld
Incoming Param: HelloWorld2
Incoming Param: HelloWorld2
Incoming Param: HelloWorld2

我该怎么做?有什么建议吗?

提前非常感谢!!

我找到了问题的解决方案,并删除了帖子(我的错(。我取消删除,这样解决方案就可以提供给有同样问题的人。

我所做的是:通过在任务中创建一个布尔类var,我能够控制这是否是第一次执行,因为任务的行为就像一个循环。

public static void main(String[] args) {        
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
boolean first = true;
@Override
public void run() {

if(first){
first = false;
methodWithParams("HelloWorld");
}else{
methodWithParams("HelloWorld2");
}
}
};

timer.scheduleAtFixedRate(timerTask, 0, 5000);
}

最新更新