[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-java-8-chto-takoe-funktsionalnye-interfeysy":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},341,"chto-takoe-funktsionalnye-interfeysy",10,"java-8","Java 8+","☕","Что такое функциональные интерфейсы?","Функциональный интерфейс — это интерфейс, содержащий ровно один абстрактный метод. Именно такой интерфейс может служить целевым типом для лямбда-выражения или ссылки на метод.\n\nАннотация `@FunctionalInterface` (необязательная, но рекомендуемая) сообщает компилятору о намерении и запрещает добавление второго абстрактного метода. Интерфейс может содержать любое количество `default` и `static` методов — это не нарушает «функциональность», поскольку они не являются абстрактными.\n\nПакет `java.util.function` содержит 43 стандартных функциональных интерфейса, покрывающих типичные паттерны: преобразование (`Function`), проверку условия (`Predicate`), потребление значения (`Consumer`), создание значения (`Supplier`) и операции (`UnaryOperator`, `BinaryOperator`).\n\n> **На собеседовании:** частая ловушка — спросить, является ли интерфейс с двумя методами функциональным, если один из них совпадает с методом `Object` (например, `equals`). Ответ: да, потому что методы `Object` не считаются абстрактными в контексте функционального интерфейса.","","junior",[15],"java8",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Что такое функциональные интерфейсы? — Gymterview","Функциональный интерфейс — это интерфейс, содержащий ровно один абстрактный метод. Именно такой интерфейс может служить целевым типом для лямбда-выражения или с","Функциональный интерфейс — это интерфейс, содержащий ровно один абстрактный метод. Именно такой интерфейс может служить ",[15,13],"Функциональный интерфейс — это интерфейс, содержащий ровно один абстрактный метод. Именно такой интерфейс может служить целевым типом для лямбда-выражения или ссылки на метод.",true]