TGViewer
Java Developer Java Developer @java_tg · 14.8K subscribers
Post #3968 2.65K
👩‍💻 Функциональные интерфейсы

Функциональный интерфейс — это интерфейс, который определяет только один абстрактный метод. Это позволяет передавать поведение как значение — например, в виде лямбды или ссылки на метод.

Рассмотрим простейший пример:
@FunctionalInterface
interface Greeting {
void say(String message);
}

Greeting g = msg -> System.out.println("Привет, " + msg);
g.say("мир!");

Аннотация @FunctionalInterface не обязательна, но рекомендуема — она защищает от случайного добавления лишнего абстрактного метода.


Интерфейс может содержать сколько угодно default- и static-методов и при этом оставаться функциональным, так как они не считаются абстрактными.

В Java предусмотрен набор стандартных функциональных интерфейсов — в пакете java.util.function. Вот наиболее часто используемые:
▶️ Predicate<T> — проверяет условие, возвращает true или false
▶️ Function<T, R> — преобразует один тип в другой
▶️ Consumer<T> — принимает значение, ничего не возвращает
▶️ Supplier<T> — возвращает значение, ничего не принимает
▶️ UnaryOperator<T> и BinaryOperator<T> — частные случаи Function, когда вход и выход одного типа


Пример использования Predicate:
Predicate<String> isLong = s -> s.length() > 5;
System.out.println(isLong.test("Java")); // false


Функциональные интерфейсы активно используются в Stream API, Optional, Comparator, CompletableFuture и других частях стандартной библиотеки. Это удобный способ описать поведение без лишнего кода.

❤ — если было полезно

📱 Java Developer | #обучение
  • ❤ 15
More from @java_tg
  1. Sep 26, 2026Post #4372
  2. Sep 26, 2026Бесплатный ChatGPT для работы прямо в Telegram Личный ассистент для рабочих задач. Без зар…
  3. Sep 26, 2026👩‍💻 Как сделать Java-сервис устойчивее к сбоям Resilience4j добавляет готовые паттерны C…
  4. Sep 25, 2026Post #4369
  5. Sep 25, 2026Если ты ждёшь знака, что пора валить в IT за границу, то вот он. IT — одна из немногих сфе…
  6. Sep 25, 2026👩‍💻 Миграция на Spring Boot 4, Spring 7 и JDK 25 В статье автор на примере демо-проекта…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →