所以我的问题是我想在每次“运行”之后减少Counter整数。如果我把Counter--放在代码中(参见注释),那么我得到一个错误,说“在封闭范围内定义的局部变量计数器必须是最终的或有效的最终”。
我现在怎么能改变我的代码以使“Counter”,int,在每次打印后减少?
public void RunCounter(int TimeCount) {
int Counter = TimeCount
Runnable Count = new Runnable() {
public void run() {
System.out.println(Counter);
//Counter--;
}
};
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
ScheduledFuture<?> countTimer = executor.scheduleAtFixedRate(Count, 1, 1, SECONDS);
executor.schedule(new Runnable()
{
public void run() {
countTimer.cancel(true);
}
}, TimeCount, SECONDS);
}
答案 0 :(得分:1)
不要将counter
声明为final,因为如果counter
是final的,以后不能更改,请将class counter定义为类中的全局变量。