Java : Supplier - API使用例
Supplier (Java SE 18 & JDK 18) の使用例まとめです。
API仕様のおともにどうぞ。
概要
結果のサプライヤを表します。
Supplier は、パラメータなし、戻り値ありの関数型インタフェースです。
主に、Stream や Optional のラムダ式として使われます。
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