Java : Supplier - API使用例

Supplier (Java SE 17 & JDK 17)の使用例まとめです。
API仕様のおともにどうぞ。


概要

クラス構成

Supplier は、パラメータなし、戻り値ありの関数型インタフェースです。
主に、StreamOptionalラムダ式として使われます。

final var opt1 = Stream.of("abcd", "efgh").findFirst();
final var opt2 = Stream.<String>empty().findFirst();

final var other = new Supplier<String>() {
    @Override
    public String get() {
        return "XYZ";
    }
};

System.out.println(opt1.orElseGet(other)); // abcd
System.out.println(opt2.orElseGet(other)); // XYZ
// ラムダ式の例です。
final var opt = Stream.empty().findFirst();

System.out.println(opt.orElseGet(() -> "XYZ")); // XYZ

メソッド

T get ()

結果を取得します。

final var supplier = new Supplier<String>() {
    @Override
    public String get() {
        return "abcd";
    }
};

System.out.println(supplier.get()); // abcd
final var supplier = new Supplier<String>() {
    int count = 0;

    @Override
    public String get() {
        count++;
        return "a".repeat(count);
    }
};

final var stream = Stream.generate(supplier);

final var ret = stream.limit(4).toList();
System.out.println(ret); // [a, aa, aaa, aaaa]
// ラムダ式として使う例です。
final var opt = Stream.empty().findFirst();

System.out.println(opt.orElseGet(() -> "XYZ")); // XYZ

関連記事

ページの先頭へ