Java : Supplier - API使用例
Supplier (Java SE 21 & JDK 21) の使い方まとめです。
だいたいのメソッドを網羅済みです。
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
関連記事
- API 使用例
- @FunctionalInterface
- BiConsumer
- BiFunction
- BiPredicate
- BooleanSupplier
- Comparator (比較)
- Consumer
- DoubleConsumer
- DoubleFunction
- DoublePredicate
- DoubleSupplier
- Function
- IntConsumer
- IntFunction
- IntPredicate
- IntSupplier
- LongConsumer
- LongFunction
- LongPredicate
- LongSupplier
- Predicate
- Runnable
- ToIntFunction