質問

    

この質問にはすでに回答があります:

    
            
  •              Java 7の閉鎖[終了]                                      7つの答え                          
  •     
    

クロージャーは、来年の夏頃にリリースされる予定の次のJava標準で導入されると聞いています。

この構文はどのように見えますか?

Javaでクロージャを導入することは、Java 5でのジェネリックよりも大きな変更であるとどこかで読みました。これは本当ですか?長所と短所?

(これまでに、次のJavaリリースにはクロージャが含まれないことが確実にわかっています)

または

編集: http://puredanger.com/ tech / 2009/11/18 / closures-after-all / :D

edit2:JDK7の再考: http://blogs.oracle.com/ mr / entry / rethinking_jdk7

edit3:失う瞬間はありません!: http:/ /blogs.oracle.com/mr/entry/quartet

役に立ちましたか?

解決

http://www.javac.info/ をご覧ください。

このように見えるようです:

boolean even = { int x => x % 2 == 0 }.invoke(15);

where {int x => x%2 == 0} ビットはクロージャです。

他のヒント

実際に導入されるものに依存し、実際に導入されるかどうか です。さまざまなサイズの閉鎖提案がいくつかあります。

提案およびさまざまなブログ投稿については、 Alex MillerのJava 7ページを参照してください。

個人的にはクロージャーが見たい-それらは美しく、信じられないほど役立つ -しかし、私は提案のいくつかがかなり毛深いことを恐れています。

これは、Java 7の機能です http://tech.puredanger.com/java7/#switch サンプルは非常に便利です。

" function-type"本当に提案されているタイプです:

{int => boolean} evaluateInt;    //declare variable of "function" type
evaluateInt = {int x => x % 2 }; //assignment

最終的にどの構文が使用されるかに関しては、まだ多くの議論が行われていると思います。これがすべての理由でJava 7になった場合、実際にはかなり驚くでしょう。

型推論が行われない場合、クロージャは煩わしく冗長になります...:(

クロージャーには深刻なエッジケースがあります。クロージャはジェネリックよりもはるかに重要な変化であり、後者にはまだ多くの毛深いエッジケースがあります。 例えばJavaコレクションライブラリは、警告なしで作成/コンパイルすることはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top