0

重複の可能性:
Java-内部クラスとローカル変数
変数をfinalとしてマークすると、内部クラスがそれらにアクセスできるようになりますか?

ローカル内部クラスは、インスタンス変数だけでなく、メソッドのローカル変数(それらが定義されている)にもアクセスできますが、ローカル変数を宣言する必要がありfinalます。

この場合、なぜローカル変数を宣言する必要があるfinalのですか?

4

2 に答える 2

5

その理由は、ローカル内部クラスのインスタンスがメソッドから返され、メソッドが返された後に続く可能性があるためです。このような場合、ローカル メソッド変数はアクセス中に存在しません。
それらを final として定義すると、それらは実際には一定であるため、後でアクセスしても安全です。詳細については、内部クラス内の非最終変数を参照することはできません

于 2012-12-08T07:46:37.670 に答える
4

あなたは匿名クラスについて話している。finalコードは未知の実行フレームで実行される可能性があり、おそらく別のスレッドでも実行される可能性があるため、ローカル変数 (のみ) は実装によって参照される必要があります。クラスがインスタンス化 (宣言) されている - つまり、変数がfinal.

于 2012-12-08T07:53:09.797 に答える