<JavaLearn/>
ラムダ式 レッスン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を返します。andornegate で条件を組み合わせられます。

Javaエディタ

Function と Consumer

Function<T, R> は値を変換し、Consumer<T> は値を受け取って処理を実行します。andThen でチェーンできます。

Javaエディタ

Supplier と @FunctionalInterface

Supplier<T> は引数なしで値を生成します。 遅延評価やファクトリパターンに便利です。

Javaエディタ