第9回 無名クラスは無名関数のように外側の変数を参照できるか?
リードオンリーならば参照可能。
つまり、無名クラスから値の書き換えは不可。
finalはコンパイラが値を置換するので、参照とは言いがたい。
例:
abstract class Hoge{ public abstract int execute(); } public class Main { public static void main(String args[]) { final int i = 10; // finalであることが重要 Hoge hoge = new Hoge(){ public int execute(){ return i; } }; System.out.println( hoge.execute() ); } }
結果:
10