添加到计时器中的变量

时间:2015-09-05 12:49:45

标签: java timer

我是java的初学者,对基本问题感到抱歉。我试图每分钟为一个变量添加5,但是如果没有范围问题或没有添加失败,我就无法做到这一点。如何解决这个问题?

我的代码是:

import java.util.Timer;
import java.util.TimerTask;

public class MainTimer {
    public static void main(String[] args) {


        Timer sigMassTimer = new Timer();

        int sigMass;
        sigMass = 0;

        sigMassTimer.schedule(new TimerTask(){

            @Override
            public void run(){

                String invSigMass = "You have "+ (sigMass + 5) + " units.";
                System.out.println(invSigMass);
            }
        }, 1*60*1000, 1*60*1000);       
    }   
}

我每分钟输出“你有5个单位”。

2 个答案:

答案 0 :(得分:1)

您需要将sigMass声明移动到TimerTask(否则您只能访问它,如果它被声明为final,因此无法在每次调用时递增)改变你的增量方式:

Timer sigMassTimer = new Timer();
sigMassTimer.schedule(new TimerTask() {
    int sigMass = 0;
    @Override
    public void run() {
        sigMass += 5;
        String invSigMass = "You have " + sigMass + " units.";
        System.out.println(invSigMass);
    }
}, 1*60*1000, 1*60*1000);
// Output:
// You have 5 units.
// You have 10 units.
// You have 15 units.
// You have 20 units.
// You have 25 units.

或者,您也可以sigMass成为static班级的MainTimer成员。

答案 1 :(得分:0)

sigMass初始化为0,您只需显示sigMass + 5,即每分钟5,而不是实际递增5 sigMass

尝试更改此位:

String invSigMass = "You have "+ (sigMass + 5) + " units.";

sigMass = sigMass + 5;    
String invSigMass = "You have "+ sigMass + " units.";

告诉我它是否有效。