重複の可能性:
別のメソッドで定義された内部クラス内の非最終変数を参照できません
なぜ匿名クラスで最終変数にしかアクセスできないのですか?
SO と google を調べて、この質問に対する答えを探しましたが、何も見つかりませんでした。
次のコードがあります。
MyClass variable = new MyClass();
Button b = new Button();
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
System.out.println("You clicked the button");
variable.doSomething();
}
});
コンパイラはこれを返します:
ローカル変数 variable は内部クラス内からアクセスされます。final を宣言する必要があります
variable
最終でなければならない技術的な理由は何ですか?