閲覧中:
3

3

以下は 4大関数型インターフェース を、 1つのクラス内・1つの main 関数内 で使うサンプルです。

Java
import java.util.function.Supplier;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.function.Function;
public class FunctionalInterfaceSample {
    public static void main(String[] args) {
        // 1. Supplier<T>
        // 引数なし、戻り値あり
        Supplier<String> supplier = () -> "Java Gold";
        String text = supplier.get();
        System.out.println("Supplier: " + text);
        // 2. Consumer<T>
        // 引数あり、戻り値なし
        Consumer<String> consumer = value -> System.out.println("Consumer: " + value);
        consumer.accept(text);
        // 3. Predicate<T>
        // 引数あり、戻り値 boolean
        Predicate<String> predicate = value -> value.length() >= 5;
        boolean result = predicate.test(text);
        System.out.println("Predicate: " + result);
        // 4. Function<T, R>
        // 引数あり、戻り値あり
        Function<String, Integer> function = value -> value.length();
        int length = function.apply(text);
        System.out.println("Function: " + length);
    }
}

実行結果

Bash
Supplier: Java Gold
Consumer: Java Gold
Predicate: true
Function: 9

覚え方

Text Only
インターフェース    ラムダ式    実行メソッド
Supplier<T> () -> 値 get()
Consumer<T> x -> 処理 accept(x)
Predicate<T>    x -> true/false test(x)
Function<T,R>   x -> 変換結果   apply(x)