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

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

Рассмотрим простейший пример:
@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 | #обучение
  • ❤ 25
  • 👍 6
  • 🔥 4
  • 👨‍💻 2
More from @java_tg
  1. Oct 3, 2026Post #4385
  2. Oct 3, 2026Сегодня один за другим ИИ-каналы говорят о «цифровом геноциде» корпорации Антропик: без во…
  3. Oct 3, 2026👩‍💻 Почему разработчики не умеют вовремя остановиться? Автор рассуждает, где проходит гр…
  4. Oct 2, 2026Post #4382
  5. Oct 2, 2026👩‍💻 Spring Boot + PostgreSQL с динамической схемой Практический кейс Pivot/EAV-архитекту…
  6. Oct 1, 2026👩‍💻 Что находится внутри OpenJDK Официальный репозиторий JDK — хорошее место, если хочет…
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 →