ゆーたんのつぶやき

株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。

Javaのクロージャ



久々のITネタです。
JavaSE7の新機能のうち、ボクが一番気になるのは
やはりクロージャですね。最新仕様案は以下です。
http://www.javac.info/closures-v05.html


当初は関数型を導入するパターンとクロージャ変換
を用いて既存のインターフェースで参照させるもの
の二通りがありましたが、最新案では関数型のみが
記載されています。後者の場合だとコードの読み手
が受け手となるインターフェースの中身をきちんと
理解していないと気持ち悪い感じがします。ですが
クロージャ変換そのものは最新案でも残っていて、
定義したクロージャをそれと同じシグニチャを持つ
インターフェースの変数に代入できるようになって
います。


Javaクロージャに対応するということは、単なる
プログラミング上の変化に留まらず、もっと大きな
インパクトがあると個人的には捉えています。


これまでJavaにおけるデザインや再利用の単位は
あくまで「クラス」でした。ですが、クロージャ
が使えるようになると、その単位が関数や手続き
というより細かいレベルまで下がってくることに
なります。その変化はコーディングのみならず、
設計やテストにも影響を及ぼすはずです。


今後もJavaクロージャ対応についてはウォッチ
をしていきたいと思います。