関数型インターフェース
- 関数(メソッド)を受け取る仕組み
- 匿名クラスによるインターフェースの実装をラムダ式で行えるようにした
定義
@FunctionalInterface interface Action<T, R> { R run(T input); }
- 抽象メソッドを一つ定義する
- 実装はしない
使用例
Action<String, Void> logger = (input) -> { System.out.println(input); }; logger.run("Hello World");
- ラムダ式やメソッド参照を受け取れる
- 定義した抽象メソッドを通して実行する
java.util.function パッケージ
Function<T, R> 関数型
R apply(T);
特徴
- 関数を合成するためのdefaultメソッドが定義されている
Consumer<T> 消費型
Void accept(T t);
Supplier<T> 供給型
T get();
Predicate<T> 判定型
boolean test(T t);
感想
俺の書いたラムダ式が泣いているぜ 😭