ラムダ式 レッスン2
関数型インターフェース
Predicate, Function, Consumer, Supplier と @FunctionalInterface
関数型インターフェースとは
関数型インターフェースは、抽象メソッドを1つだけ持つインターフェースです。@FunctionalInterface アノテーションを付けると、 コンパイラが条件を満たしているかチェックしてくれます。 Java標準ライブラリには java.util.function パッケージに 多くの関数型インターフェースが用意されています。
Predicate<T>— 条件判定(T → boolean)Function<T, R>— 変換(T → R)Consumer<T>— 消費(T → void)Supplier<T>— 生成(() → T)
Predicate — 条件判定
Predicate<T> は引数を受け取り、 booleanを返します。and、or、negate で条件を組み合わせられます。
Javaエディタ
Function と Consumer
Function<T, R> は値を変換し、Consumer<T> は値を受け取って処理を実行します。andThen でチェーンできます。
Javaエディタ
Supplier と @FunctionalInterface
Supplier<T> は引数なしで値を生成します。 遅延評価やファクトリパターンに便利です。
Javaエディタ