ラムダ式 レッスン6
カスタム関数型IF
独自の @FunctionalInterface を定義して活用する
カスタム関数型インターフェースの作成
標準の関数型インターフェースで表現しきれない場合、独自の関数型インターフェースを定義できます。@FunctionalInterface アノテーションを付けると、 抽象メソッドが1つであることをコンパイラが検証してくれます。 ドメイン固有の操作を型安全に表現する場合に有用です。
- 抽象メソッドは必ず1つだけ
- デフォルトメソッドや静的メソッドは複数持てる
@FunctionalInterfaceは省略可能だが付けることを推奨- ジェネリクスを使って汎用的に定義できる
基本的なカスタム関数型IF
2つの引数を受け取り、結果を返すカスタムインターフェースを作成します。@FunctionalInterface で安全性を確保します。
Javaエディタ
ジェネリクスを使った関数型IF
型パラメータを使うことで、さまざまな型に対応できる汎用的な関数型インターフェースを定義できます。
Javaエディタ
デフォルトメソッドとチェーン
関数型インターフェースにデフォルトメソッドを追加することで、 メソッドチェーンのような合成パターンを実現できます。
Javaエディタ