TG Telegram Group & Channel
Java Developer | United States America (US)
Create: Update:

👩‍💻 Функциональные интерфейсы

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

Рассмотрим простейший пример:

@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 | #обучение

👩‍💻 Функциональные интерфейсы

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

Рассмотрим простейший пример:
@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 | #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍6🔥4👨‍💻2


>>Click here to continue<<

Java Developer






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)