[英]How to extend method run in TimerTask . Must accept string parameter
[英]How to schedule a method with TimerTask but with different method parameter the first time
這是我第一次在美麗而令人敬畏的 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);
}
有了這個,output 每 5 秒是這樣的:
Incoming Param: HelloWorld
我想要的是每 5 秒運行一次methodWithParams方法,但是第一次調用該方法時,我可以用一些參數調用它,但是參數的時間 rest 是其他任何東西,所以結果是這樣的:
Incoming Param: HelloWorld
Incoming Param: HelloWorld2
Incoming Param: HelloWorld2
Incoming Param: HelloWorld2
我怎樣才能做到這一點? 有什么建議嗎?
非常感謝您!
我找到了解決我的問題的方法並刪除了帖子(我的錯)。 我取消刪除,這樣解決方案就可以提供給和我有同樣問題的人。
我所做的是:通過在任務中創建一個 boolean 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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.