クロージャからローカル変数へのアクセス 今回も第54回に引き続いてJava SE 7で導入される予定のクロージャについて紹介する。従来のJavaでも、無名インナークラスを使えばクロージャに近いコードを記述することはできた。その無名インナークラスとクロージャの非常に大きな違いが、クロージャではそれが定義された環境(エンクロージャ)のスコープ内のローカル変数にアクセスできる点だ。 リスト1で定義している{ int y => x += y }というクロージャは、エンクロージャ内のローカル変数xに、引数で渡された値yを加算して返すというものだ。クロージャ内で加算されたxの値は、クロージャの外側でも有効である。また、エンクロージャ側でxの値を変更した場合にも、次にクロージャが呼び出された際にはそれが反映される。したがってこのプログラムの実行結果はプロンプト1のようになる。 現在のところ仕様には記載さ