Ne peut pas se référer à un non-finale de la variable à l'intérieur d'un intérieur classe définie dans une méthode différente

Modifié:
J'ai besoin de changer les valeurs de plusieurs variables, comme ils courent à plusieurs reprises par une minuterie. J'ai besoin de continuer à mettre à jour les valeurs à chaque itération de la minuterie. Je ne peux pas définir les valeurs à la finale comme qui va m'empêcher de mettre à jour les valeurs que j'obtiens l'erreur que je décris dans la première question ci-dessous:

J'avais déjà écrit ce qui est ci-dessous:

J'obtiens le message d'erreur "ne peut pas se référer à un non-finale de la variable à l'intérieur d'un intérieur classe définie dans une méthode différente".

Ce qui se passe pour le double du prix de vente et le Prix priceObject. Savez-vous pourquoi je reçois ce problème. Je ne comprends pas pourquoi j'ai besoin d'une déclaration finale. Aussi, si vous pouvez voir ce que c'est je suis en train de faire, que dois-je faire pour contourner ce problème.

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);
}
Ce que je demande est, comment puis-je obtenir une variable dans un timer que je peux mettre à jour en permanence.
la réponse est simple: "Non". Mais vous pouvez obtenir l'effet désiré, à l'aide d'un intérieur de classe; voir @petercardona de réponse.

OriginalL'auteur Ankur | 2009-08-19