Java8の新しい機能を探求する(一)lambda..
オーペンソースの力 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java8の新しい機能を探求する(一)lambdaに通じる道
投稿者: 敏@opentikara ON 木, 11月 21, 2013 lambdaを十分に理解するために、まず、概念的な知識を紹介しましょう。始める前に、同期にjdk 8 と IDEをダウンロードしてください。次のはそのダウンロードアドレスです。 · jdk 8:https://jdk8.java.net/download.html · Netbeans 7.4正式バージョン:https://netbeans.org/downloads/(お勧め) · IDEA 12 EAP http://confluence.jetbrains.net/display/IDEADEV/IDEA+12+EAP · Unofficial builds of Eclipse :http://downloads.efxclipse.org/eclipse-java8/ 関数インターフェース: 関数インターフェース(functional interface)は唯一の方法を含んでいるインタフェースです。例えば、Javaの標準ライブラリでのjava.lang.Runnableとjava.util.Comparatorは皆代表的な関数インタフェースです。注釈として、java8は@FunctionalInterfaceを提供します。この注釈は必ずしも必要ではなく、関数インタフェースの標準に満たせるのなら、仮想マシンが自動的に判断できます。 Javaでのlambdaは独自で表示されないため、一つの関数インタフェースで身を置く必要があります。実際に、lambdaのラムダ式メソッド本体は関数インターフェイスの実現です。 Lambda言語 これは3つの部分から構成される。 1、一つの括弧でコンマで区切られた引数の形で、パラメータは関数インターフェイス内のファンクションメソッドパラメータです 2、一つの矢印記号: - > 3、メソッド本体は表現式とコードブロックのどちらでもいい。コードブロックの場合、{}を使用する必要があり、またreturnという戻り値も必要となります。もし、関数インタフェースでのメソッド戻り値はvoidである場合、{}は必要としません。 このように見える:
メソッド参照: これはlambda表現式の簡単な方法で、lambdaメソッド本体の実現を引用します。その言語は非常に簡単で、左はコンテナ、真ん中は"::"、右側は対応するメソッド名です。次のとおりです。 1のObjectReference:: methodNameの 一般的な参照形式は次のよう。 1、ClassName::methodNameはその静的なメソッドです。例えば、 Object ::equals 2、Instance::methodNameはそのインスタンスメソッドです。例えば、Object obj=new 3、ClassName::newはそのコンストラクタです。 では、理解しやすいため、完全な例を見てみましょう。
|