Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Supplier

Поставщик: функция без аргументов, которая возвращает значение.

Доступно с: Java 8

Синтаксис

@FunctionalInterface
public interface Supplier<T> {
    T get();
}

Примеры

Отложенное создание значения:

void main() {
    Supplier<List<String>> newList = ArrayList::new;
    List<String> a = newList.get();
    a.add("x");
    IO.println(a + " " + newList.get());
    Supplier<String> greeting = () -> "Hello at step " + a.size();
    IO.println(greeting.get());
}

Результат:

[x] []
Hello at step 1

Примечания

Значение создаётся только при вызове get() — это используется в orElseGet(), Stream.generate(), CompletableFuture.supplyAsync() и computeIfAbsent(). Каждый вызов get() выполняет функцию заново.

См. также

  • Consumer — Действие: принимает значение и ничего не возвращает.
  • Optional.orElseGet() — Возвращает значение или вызывает функцию, чтобы создать запасной вариант.
  • Stream.generate() — Создаёт бесконечный поток из значений функции-поставщика.
  • CompletableFuture.supplyAsync() — Запускает вычисление асинхронно и возвращает `CompletableFuture`.

В учебнике

  • Функциональные интерфейсы — Функциональные интерфейсы в Java: аннотация @FunctionalInterface, стандартные Function, Predicate, Consumer, Supplier и их комбинирование.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.