私は現在、Sierra & Bates の本で S(O)CJP を準備しています。
内部クラス (メソッド ローカルまたは匿名) については、ローカル変数にアクセスできないと言われています。これは、クラスがヒープ上に存在している間、ローカル変数がスタック上に存在し、メソッドによって返され、これらの変数にアクセスしようとする可能性があるためです。スタック上にありますが、メソッドが終了したため、もう存在しません...
ご存知のように、final キーワードを使用してこれを回避できます。これは彼らが本で言っていることですが、その final キーワードの効果については実際には説明していません... 私の知る限り、メソッドのローカル変数で final キーワードを使用しても、ヒープ上で有効にはなりません。 ..では、スタックがなくなる可能性があるときに、クラスはスタック上にまだ存在する最終変数にどのようにアクセスできるのでしょうか???
内部クラス内に、この最終的なローカル変数のある種の「コピー」が必要だと思います。値は変更できないため、この情報を複製してみませんか...誰かがこれを確認するか、何か不足しているかどうか教えてもらえますか