• ベストアンサー

Java7について

Java7で導入が検討されている"クロージャ"という機能ですが、 具体的にどんな機能なんでしょうか? そもそもクロージャというものが分かってません。 お手すきの時で結構ですので教えていただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#120325
noname#120325
回答No.1

ゴメンなさいー、Java7のクロージャーはよくしらないんですがー。 「クロージャー」とゆーのは、LL言語(ライトウェイトね)でよく使われますねー。これは「関数リテラルを扱う機能」のことですよー。つまり、関数を、値として変数に入れたりして利用できる機能ですねー。Javaでは、メソッドになるのかなー? LL言語では、クロージャは、無名関数(名前のない関数ですねー)として定義されたものを変数などに保管し利用しますねー。例えばJavaScriptなんかだと、 var x = function(){ なんたらかんたら } こんな具合にして関数を変数に入れますねー。そして、x();と呼び出せば、保管された関数が呼び出され実行されますねー。xと指定すれば、関数リテラルそのものが取り出せますよー。 Javaがどーいう実装なのかよく知らないんですがー、おそらくメソッドなどの処理をクラスの変数やフィールドなどに設定し呼び出したりできるよーになるんじゃないでしょーかー。

inakazu
質問者

お礼

violini様 無学な私に易しい説明ありがとうございます。 クロージャーの概念がわかりました。 まだJavaのクロージャー機能は検討中との事なのですが、無名関数を 変数に入れて使うというところを見ると、ネストクラス(無名クラス)関係の実装になりそうな予感がしますね。 本当にありがとうございました。

関連するQ&A