編集:タイマーを介して数回実行されるため、いくつかの変数の値を変更する必要があります。タイマーを繰り返すたびに値を更新し続ける必要があります。値をfinalに設定すると、値を更新できなくなりますが、以下の最初の質問で説明するエラーが発生します。
私は以前に以下のことを書いていました:
「別のメソッドで定義された内部クラス内の非最終変数を参照できません」というエラーが発生します。
これは、priceと呼ばれるdoubleとpriceObjectと呼ばれるPriceで発生します。なぜ私がこの問題を抱えているのか知っていますか。なぜ最終宣言が必要なのかわかりません。また、私が何をしようとしているのかがわかるとしたら、この問題を回避するために何をしなければならないのでしょうか。
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);
}