Что такое функциональный интерфейс
Функциональный интерфейс — это интерфейс, который содержит только один абстрактный метод. Это позволяет использовать лямбда-выражения для создания его анонимных реализаций, делая код более лаконичным и читаемым. Функциональные интерфейсы являются основой для лямбда-выражений и методов ссылок, начиная с версии 8.
Примером этого может служить интерфейс `java.util.function.Predicate<T>`, который принимает объект типа `T` и возвращает значение типа `boolean`. Вот пример использования:
Predicate<String> isNotEmpty = s -> !s.isEmpty();
System.out.println(isNotEmpty.test("Hello")); // Выведет true
System.out.println(isNotEmpty.test("")); // Выведет false
Чтобы явно указать, что интерфейс предназначен для использования как функциональный, используется аннотация `@FunctionalInterface`. Эта аннотация не обязательна (компилятор может определить функциональный интерфейс и без неё), но она помогает в документировании кода и обеспечивает проверку времени компиляции, гарантируя, что интерфейс содержит только один абстрактный метод.
Пример собственного интерфейса:
@FunctionalInterface
public interface SimpleFunction {
int apply(int value);
}
// Использование
SimpleFunction triple = value -> value * 3;
System.out.println(triple.apply(5)); // Выведет 15
Важно отметить, что функциональный интерфейс может содержать также статические и default методы, не нарушая своей "функциональности", поскольку они не считаются абстрактными методами.
Функциональный интерфейс — это интерфейс с одним абстрактным методом, который позволяет использовать лямбда-выражения для более краткого и выразительного кода. Аннотация `@FunctionalInterface` помогает обеспечить, что интерфейс соответствует требованиям функционального интерфейса.
Feb. 22, 2024, easyoffer