La variable locale finale ne peut pas être affectée, car elle est définie dans un type englobant

ratingS = new JSlider(1, 5, 3); 
ratingS.setMajorTickSpacing(1);
ratingS.setPaintLabels(true);
int vote;

class SliderMoved implements ChangeListener {
    public void stateChanged(ChangeEvent e) {
        vote = ratingS.getValue();
    }
}

ratingS.addChangeListener(new SliderMoved());

Si j'écris le code ci-dessus Eclipse me dit ceci:

Ne peut pas se référer à un non-final variable de vote à l'intérieur d'un intérieur de classe
défini dans un autre méthode

Mais si j'ajoute final avant int vote il me donne cette erreur:

La finale locale de vote variable ne peut pas être affectée, car elle est définie dans un enfermant type

Alors, comment le résoudre?

source d'informationauteur smartmouse