[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-dlya-chego-nuzhny-funktsionalnye-interfeysy-consumer-doubleconsumer-intconsumer-i-longconsumer":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},346,"dlya-chego-nuzhny-funktsionalnye-interfeysy-consumer-doubleconsumer-intconsumer-i-longconsumer",10,"java-8","Java 8+","☕","Для чего нужны функциональные интерфейсы Consumer, DoubleConsumer, IntConsumer и LongConsumer?","`Consumer\u003CT>` — функциональный интерфейс, представляющий операцию, которая принимает аргумент типа `T`, производит побочный эффект и ничего не возвращает (`void`). Основной метод — `accept(T t)`. Типичное применение — логирование, вывод, модификация объекта.\n\n```java\nConsumer\u003CString> hello = name -> System.out.println(\"Hello, \" + name);\nhello.accept(\"world\"); \u002F\u002F Hello, world\n```\n\n`default`-метод `andThen()` позволяет выстроить цепочку потребителей: сначала выполняется текущий, затем переданный.\n\nПримитивные специализации:\n\n| Интерфейс | Тип аргумента |\n|-----------|--------------|\n| `Consumer\u003CT>` | `T` |\n| `DoubleConsumer` | `double` |\n| `IntConsumer` | `int` |\n| `LongConsumer` | `long` |\n\n`Consumer` является целевым типом для `forEach()` в коллекциях и стримах. Также используется в `Optional.ifPresent()`.\n\n> **На собеседовании:** подчеркните отличие от `Function`: `Consumer` не возвращает значение. Это ключевое различие, и интервьюеры ожидают его явного упоминания.","","junior",[15],"java8",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Для чего нужны функциональные интерфейсы ObjDoubleConsumer,  — Gymterview","Эти интерфейсы представляют операцию, принимающую два аргумента — объект типа `T` и примитив — и ничего не возвращающую. Они являются специализированными версия","Эти интерфейсы представляют операцию, принимающую два аргумента — объект типа `T` и примитив — и ничего не возвращающую.",[15,13],"Эти интерфейсы представляют операцию, принимающую два аргумента — объект типа `T` и примитив — и ничего не возвращающую. Они являются специализированными версиями `BiConsumer`, где второй аргумент — примитив, что позволяет избежать автобоксинга.",true]