如何使用 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);

}