関数型インターフェースとは
関数型インターフェースは、1つの抽象メソッドのみを持つインターフェースです。
通常はラムダ式やストリーム操作などと組み合わせて使用されます。
Javaの標準ライブラリにはよく使用される関数型インターフェースが既に用意されているので、通常はこれを使用します。
(自身で関数型インターフェースを定義することも可能です。)
関数型インターフェースの条件
関数型インターフェースとするには以下の条件があります。
- 抽象メソッドを1つのみ持つ
(staticメソッド、デフォルトメソッドは定義可能 ※1) - Objectクラスのpublicメソッドは抽象メソッドしてなら定義可能
- アノテーション「@FunctionalInterface」を指定することが推奨される
(必須ではない)
※1 Java SE8から定義できるようになりました。
関数型インターフェースの定義サンプル
自身で関数型インターフェースを定義する場合は以下のような感じになります。
- (関数型インターフェースの例)
-
@FunctionalInterface interface SampleFunctionalInterface { void doMethod(); }
1つの抽象メソッドを持つインターフェースとして定義します。 アノテーション「@FunctionalInterface」の指定は必須ではありませんが、 指定しておくと、関数型インターフェースの条件に合致しない場合はコンパイルエラーとなり、すぐにミスに気付けるため指定することをおすすめします。
コメント