如何使用 TimerTask 安排方法但第一次使用不同的方法参数
How to schedule a method with TimerTask but with different method parameter the first time
这是我第一次 post 在美丽而令人敬畏的 Whosebug 社区中做一些事情,我的英语有点生疏,但我会尽力解释。
我有以下情况:
在我的主要任务中,我通过 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
我该怎么做?有什么建议吗?
非常感谢您!!
我找到了解决问题的办法,我删除了 post(我的错)。我取消删除了,所以解决方案可以提供给和我有同样问题的人。
我所做的是:通过在任务中创建一个布尔值 class 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);
}
这是我第一次 post 在美丽而令人敬畏的 Whosebug 社区中做一些事情,我的英语有点生疏,但我会尽力解释。
我有以下情况:
在我的主要任务中,我通过 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
我该怎么做?有什么建议吗?
非常感谢您!!
我找到了解决问题的办法,我删除了 post(我的错)。我取消删除了,所以解决方案可以提供给和我有同样问题的人。
我所做的是:通过在任务中创建一个布尔值 class 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);
}