[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 12361] Re: ズームイン Java(6/10) の予習について



高橋(徹)です。

   "Yasuhiro Endoh <quiver2k@xxxxxxxxx>"さんは書きました:

> > Javaの無名クラスについては真のクロージャとは言えないとかコードが長くな
> > るとかの異論もあるようですが、
> 
> Rubyにクロージャーがあるのが便利かと聞かれれば
> とても便利だと思いますが、
> Javaに真のクロージャーが必要かどうかといえば
> Javaの言語設計にあまりなじまないような気がするので
> 無名クラスでクロージャ的な使い方でよいのではないかと思っています。
> Javaの無名クラスが真のクロージャーでないという主張自体はその通りかと。

ジャバワールド誌2006年7月号の記事「Javaコーディング道場」に
タイムリーにクロージャがテーマに取り上げられていました。記事中では、
クロージャを「メソッドを定義した文脈と関連付けられたメソッド」と定義し
「Javaでは多少の制約はあるものの無名内部クラスで定義したメソッドを
クロージャとして利用可能」としています。

クロージャの利点として、以下の間の結合を疎にできるメリットを説いて
いました。
・クロージャの定義元とクロージャの呼び出し元
・クロージャの呼び出し元とクロージャ
これによって、クロージャの呼び出し元の独立性が高まり再利用容易になる
という展開です。

クロージャそのものに再利用性を求めてはおらず(まあそうですよね)、
クロージャはもともとのクラスの独立性を高める手段となっています。

> 昨年のJavaOne Tokyoではたしか
> Javaで将来的にサポートするかもしれないものの一つとして
> クロージャーが挙げられていたと思いますが、
> Javaの思想に合うかどうかがも大事とも言われていたと思います。

以下でJavaOne 2006 SFのTS-3439 "Mastering Mustang, Developing Dolphin"
のスライドが見れます。
http://blogs.sun.com/roller/resources/dannycoward/
MasteringMustangDevelopingDolphinJavaOne2006-TS-3439.pdf

これによると、Java SE 7 (Dolphin)で検討されている新言語仕様は以下です。
・Property support
・Method Reference
・Block Closures
・Native XML Support

クロージャが挙がっていますね。残念ながら上記スライドではクロージャの
詳細は記載されていません。

--
TAKAHASHI,Toru
torutk@xxxxxxxxxxxx