Для того что бы определить лямбда-выражение, нам нужен функциональный интерфейс. Изобретём свой:
@FunctionalInterface
interface MathOperation {
int operate(int a, int b);
}
Функциональный интерфейс
MathOperation содержит один абстрактный метод operate, который принимает два значения типа int и возвращает int. Аннотация @FunctionalInterface указывает на то, что интерфейс предназначен для использования в функциональном программировании и должен содержать только один абстрактный метод. Но аннотация не обязательна.Использование лямбда-выражения:
public class LambdaExample {
public static void main(String[] args) {
// Реализация интерфейса с помощью лямбда-выражения
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> a - b;
MathOperation multiplication = (a, b) -> a * b;
MathOperation division = (a, b) -> a / b;
int x = 10;
int y = 5;
System.out.println("Addition: " + operate(x, y, addition)); // 15
System.out.println("Subtraction: " + operate(x, y, subtraction)); // 5
System.out.println("Multiplication: " + operate(x, y, multiplication)); // 50
System.out.println("Division: " + operate(x, y, division)); // 2
}
// Метод, принимающий MathOperation и применяющий его к данным
private static int operate(int a, int b, MathOperation operation) {
return operation.operate(a, b);
}
}
В нашем примере лямбда-выражения используются для создания экземпляров интерфейса
MathOperation для выполнения различных математических операций (сложение, вычитание и т.д.).Метод
operate принимает два целых числа и функциональный интерфейс MathOperation, затем выполняет переданную операцию. В метод в третьем параметре можно передать непосредственно лямбда-выражение, не используя промежуточную переменную.#java #lambda #FunctionalInterface
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍19❤🔥2❤1
Функциональные интерфейсы — это интерфейсы, которые содержат только один абстрактный метод. Они используются как целевые типы для лямбда-выражений и позволяют передавать функциональность в виде параметров. В Java 8 было добавлено несколько встроенных функциональных интерфейсов, таких как
Predicate, Consumer, Supplier, и Function.Пример функционального интерфейса:
@FunctionalInterface
interface MyFunctionalInterface {
void printMessage(String message);
}
Теперь, используя лямбда-выражение, мы можем легко реализовать этот интерфейс:
MyFunctionalInterface printer = message -> System.out.println(message);
printer.printMessage("Hello, World!"); // Hello, World!
Java включает несколько предопределенных функциональных интерфейсов, например:
✔️
Predicate<T> — принимает объект типа T и возвращает boolean.✔️
Consumer<T> — принимает объект типа T и ничего не возвращает.✔️
Supplier<T> — ничего не принимает, но возвращает объект типа T.✔️
Function<T, R> — принимает объект типа T и возвращает объект типа R.Использование функциональных интерфейсов позволяет создавать гибкий и лаконичный код.
#java #FunctionalInterface
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍1
Функциональный интерфейс — это интерфейс, содержащий ровно один абстрактный метод. В Java 8 и выше они активно используются для работы с лямбда-выражениями и потоками (Stream API).
Пример:
@FunctionalInterface
interface MyFunctionalInterface {
void execute();
}
public class Main {
public static void main(String[] args) {
MyFunctionalInterface task = () -> System.out.println("Hello, Functional Interface!");
task.execute();
}
}
1️⃣ Интерфейс с аннотацией
@FunctionalInterface может содержать только один абстрактный метод.2️⃣ Можно добавлять
default или static методы без ограничения их количества.#java #functionalinterface #lambda
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3🔥2
Для того что бы определить лямбда-выражение, нам нужен функциональный интерфейс. Изобретём свой:
@FunctionalInterface
interface MathOperation {
int operate(int a, int b);
}
Функциональный интерфейс
MathOperation содержит один абстрактный метод operate, который принимает два значения типа int и возвращает int. Аннотация @FunctionalInterface указывает на то, что интерфейс предназначен для использования в функциональном программировании и должен содержать только один абстрактный метод. Но аннотация не обязательна.Использование лямбда-выражения:
public class LambdaExample {
public static void main(String[] args) {
// Реализация интерфейса с помощью лямбда-выражения
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> a - b;
MathOperation multiplication = (a, b) -> a * b;
MathOperation division = (a, b) -> a / b;
int x = 10;
int y = 5;
System.out.println("Addition: " + operate(x, y, addition)); // 15
System.out.println("Subtraction: " + operate(x, y, subtraction)); // 5
System.out.println("Multiplication: " + operate(x, y, multiplication)); // 50
System.out.println("Division: " + operate(x, y, division)); // 2
}
// Метод, принимающий MathOperation и применяющий его к данным
private static int operate(int a, int b, MathOperation operation) {
return operation.operate(a, b);
}
}
В нашем примере лямбда-выражения используются для создания экземпляров интерфейса
MathOperation для выполнения различных математических операций (сложение, вычитание и т.д.).Метод
operate принимает два целых числа и функциональный интерфейс MathOperation, затем выполняет переданную операцию. В метод в третьем параметре можно передать непосредственно лямбда-выражение, не используя промежуточную переменную.#java #lambda #FunctionalInterface
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3