Consumer
Действие: принимает значение и ничего не возвращает.
Доступно с: Java 8
Синтаксис
@FunctionalInterface
public interface Consumer<T> {
void accept(T t);
}Примеры
Действие и цепочка действий:
void main() {
List<String> log = new ArrayList<>();
Consumer<String> print = s -> IO.println("> " + s);
Consumer<String> save = log::add;
print.andThen(save).accept("started");
IO.println(log);
}Результат:
> started
[started]Примечания
Принимается в forEach() и ifPresent(). andThen() склеивает несколько действий в одно. Для двух аргументов есть BiConsumer, для примитивов — IntConsumer.
См. также
- Supplier — Поставщик: функция без аргументов, которая возвращает значение.
- Stream.forEach() — Выполняет действие для каждого элемента потока (завершающая операция).
- Optional.ifPresent() — Выполняет действие, только если значение есть.
В учебнике
- Функциональные интерфейсы — Функциональные интерфейсы в Java: аннотация @FunctionalInterface, стандартные Function, Predicate, Consumer, Supplier и их комбинирование.