Функциональный интерфейс в Java — это интерфейс ровно с одним абстрактным методом. Этот единственный абстрактный метод определяет основной контракт, который должны выполнять классы, его реализующие.
static методы и константы@FunctionalInterface для проверки во время компиляцииJava 8 предоставляет несколько популярных функциональных интерфейсов:
java.lang.Runnable — представляет задачу без параметров и возвращаемого значенияjava.util.concurrent.Callable<V> — представляет задачу, которая возвращает результатjava.util.function.Function<T, R> — преобразует входные данные в выходныеjava.util.function.Predicate<T> — проверяет условие и возвращает booleanjava.util.function.Consumer<T> — выполняет действие над входными даннымиФункциональные интерфейсы включают лямбда-выражения и ссылки на методы в Java 8. Поскольку компилятор знает, что есть ровно один абстрактный метод, он может определить, какой метод реализует лямбда-выражение, что делает код более лаконичным и читаемым.
// Пример: использование Runnable (функциональный интерфейс)
Runnable task = () -> System.out.println("Task executed");
Этот паттерн упрощает функциональное программирование в Java, сохраняя при этом типобезопасность и обратную совместимость.
Функциональный интерфейс должен содержать ровно один абстрактный метод, но может также включать несколько методов по умолчанию, не нарушая контракт функционального интерфейса.
Новый — ещё не проверен сообществом
Вы