我是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个单位”。
答案 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.";
告诉我它是否有效。