Kann nicht auf eine nicht endgültige Variable in einer inneren Klasse verweisen, die in einer anderen Methode definiert wurde

Bearbeitet: Ich muss die Werte mehrerer Variablen ändern, da sie mehrere Male durch einen Timer laufen. Ich muss die Werte bei jeder Iteration durch den Timer aktualisieren. Ich kann die Werte nicht auf final setzen, da ich dadurch die Werte nicht aktualisieren kann. Es wird jedoch der Fehler angezeigt, den ich in der ersten Frage unten beschreibe:

Ich hatte vorher geschrieben, was unten steht:

Ich erhalte die Fehlermeldung "kann nicht auf eine nicht endgültige Variable in einer inneren Klasse verweisen, die in einer anderen Methode definiert wurde".

Dies geschieht für den doppelten Preis und den Preis priceObject. Weißt du warum ich dieses Problem bekomme? Ich verstehe nicht, warum ich eine Abschlusserklärung haben muss. Auch wenn Sie sehen können, was ich zu tun versuche, was ich tun muss, um dieses Problem zu umgehen.

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);
}

Antworten auf die Frage(20)

Ihre Antwort auf die Frage