Gymterview
junior

Для чего нужны функциональные интерфейсы Consumer, DoubleConsumer, IntConsumer и LongConsumer?

Consumer<T> — функциональный интерфейс, представляющий операцию, которая принимает аргумент типа T, производит побочный эффект и ничего не возвращает (void). Основной метод — accept(T t). Типичное применение — логирование, вывод, модификация объекта.

Пример
Consumer<String> hello = name -> System.out.println("Hello, " + name);
hello.accept("world"); // Hello, world

default-метод andThen() позволяет выстроить цепочку потребителей: сначала выполняется текущий, затем переданный.

Примитивные специализации:

Интерфейс Тип аргумента
Consumer<T> T
DoubleConsumer double
IntConsumer int
LongConsumer long

Consumer является целевым типом для forEach() в коллекциях и стримах. Также используется в Optional.ifPresent().

На собеседовании: подчеркните отличие от Function: Consumer не возвращает значение. Это ключевое различие, и интервьюеры ожидают его явного упоминания.