将参数传递给Timer Task(Java)

时间:2011-12-14 01:52:57

标签: java timer

我在循环中有一个计时器任务;

我想把时间任务传递给循环中的数字...

这可能吗?

我的代码:

...
int i = 0;
while (i < array.size){
    Timer timer = new Timer();
    timer.schedule(new RegrowCornAnimate(), 0, 1000);
i++
}
...

class RegrowCornAnimate extends TimerTask {
     public void run() {
//Do stuff
   }
}

如何更改它以便我可以在TimerTask类中使用i? - 在每个TimerTask中都会知道它是在/ in / from下创建的i

谢谢,

4 个答案:

答案 0 :(得分:17)

class RegrowCornAnimate extends TimerTask {

    private final int serial;


    RegrowCornAnimate ( int serial )
    {
      this.serial = serial;
    }

    public void run() {
      //Do stuff
    }
}

...
int i = 0;
while (i < array.size){
    Timer timer = new Timer();
    timer.schedule(new RegrowCornAnimate( i ), 0, 1000);
    i++;
}
...

答案 1 :(得分:4)

RegrowCornAnimate类提供一个带int的构造函数,并将其存储在字段中。在创建构造函数时将i传递给构造函数。

答案 2 :(得分:3)

RegrowCornAnimate中创建一个构造函数,获取您想要使用的参数,然后将它们作为成员存储在您的类中。

调用RegrowCornAnimate.run时读取值。

答案 3 :(得分:0)

请看一个例​​子 http://www.roseindia.net/java/task-scheduling.shtml。此示例在每次运行时打印一个数字。