機能インタフェース
まず、概念
Javaで関数インタフェースは、意味:1と抽象インタフェースの1つの方法だけを。
機能インタフェース、すなわちインタフェースの適切な関数型プログラミングシナリオ。そして、Javaの関数型プログラミングでは、反射されたラムダ、そうにも適用することができる機能インタフェースラムダ-useインターフェース。唯一のインターフェイスとだけ1つの抽象メソッドを確保することで、Javaの中にラムダがスムーズに推定することができます。
ヒント:「糖衣構文は、」より便利の使用を指しますが、原理は同じコードの構文です。コレクションを横断するとき、例えばのため、各構文、基本原理は、イテレータのまま達成実際には、これは「シンタックスシュガー」。レベルが関係しているアプリケーションから、Javaのでラムダは匿名のインナーとして撮影することができます
クラス「シンタックスシュガー」、どちらも原則的に異なっています。
第二に、フォーマット
ただ、インターフェイスとだけ1つの抽象メソッドができていることを確認します。
構文:
修飾インタフェース名{
パブリック抽象メソッドの戻り型の名前(任意のパラメータ情報);
//その他の非抽象メソッドコンテンツ
}
機能インタフェースの定義は非常に簡単であるように抽象化のパブリック抽象メソッドのうちインターフェイスので、省略してもよいです。
パブリックインターフェイスMyFunctionalInterface {
ボイドMyMethodは()。
}
三、@ FunctionalInterfaceコメント
@FunctionalInterface:そして新しい注釈付き機能インタフェースの導入に特化@Override類似し、Java8の役割を指摘しています。
注釈は、インターフェイスを定義するために使用することができます。
@FunctionalInterface
パブリックインターフェイスMyFunctionalInterface {
ボイドMyMethodは()。
}
インタフェースを定義するには、このアノテーションを使用することにより、コンパイラはそれ以外の場合はエラーになり、インターフェイスは、唯一の抽象メソッドを持っているかどうかを確認するために強制されます。
限り、機能インタフェースの定義として、でもノートの適用せずに、なお依然関数インタフェースである、すべて同じを使用します。
第四に、カスタム関数インタフェース
ちょうど定義MyFunctionInterface機能インターフェースのため、典型的なシナリオは、メソッドのパラメータとして使用されます。
1 パブリック クラスDemoFunctionalInterface {
2は // メソッドのパラメータで定義されている自己の機能インタフェースを使用
3。 プライベート 静的 ボイドのdoSomething(インターMyFunctionalInterface){
4。 inter.myMethod(); // 関数インターフェースカスタムメソッドを呼び出す
。5 }
。6
7。 公共 静的 ボイドメイン(文字列[]引数){
8。 // インターフェースを使用する関数を呼び出す
9。 doSomethingの(() - >のSystem.out.println( "ラムダはそれを実行!" ));
10 }
11 }