簡體   English   中英

如何使用 TimerTask 安排方法但第一次使用不同的方法參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM