编辑:
我需要在计时器运行多次的过程中更改多个变量的值。我需要在每次通过计时器迭代时更新这些值。我不能将这些值设置为final,因为那样会防止我更新它们,然而我正在遇到下面描述的错误:
我之前写的是:
我遇到了“无法引用在不同方法中定义的内部类中的非最终变量”的错误。
这发生在名为price和名为priceObject的double变量上。你知道我为什么会遇到这个问题吗?我不明白为什么需要有一个final声明。如果你能看出我试图做什么,那么我需要怎么做才能解决这个问题。
public static void main(String args[]) {
int period = 2000;
int delay = 2000;
double lastPrice = 0;
Price priceObject = new Price();
double price = 0;
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
price = priceObject.getNextPrice(lastPrice);
System.out.println();
lastPrice = price;
}
}, delay, period);
}