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не возвращает значение. Это ключевое различие, и интервьюеры ожидают его явного упоминания.