Junior
Czym są wyrażenia lambda w Java?
sobes.tech AI
Odpowiedź od AI
Wyrażenie lambda w Java to zwięzły sposób przedstawiania funkcji anonimowych (funkcji bez nazwy). Służy do tworzenia instancji interfejsów funkcyjnych.
Główne składniki:
- Lista parametrów: Nawiasy
()zawierają listę parametrów. Jeśli nie ma parametrów, używa się pustych nawiasów. - Strzałka
->: Oddziela listę parametrów od ciała wyrażenia lambda. - Ciało: Może być pojedynczym wyrażeniem lub blokiem kodu w nawiasach
{}.
Przykład bez parametrów:
// Interfejs funkcyjny
@FunctionalInterface
interface Greeting {
void sayHello();
}
// Użycie wyrażenia lambda
Greeting greeting = () -> System.out.println("Hello, World!");
Przykład z parametrami:
// Interfejs funkcyjny
@FunctionalInterface
interface MathOperation {
int operate(int a, int b);
}
// Użycie wyrażenia lambda
MathOperation addition = (a, b) -> a + b;
MathOperation subtraction = (a, b) -> {
return a - b;
};
Zalety:
- Zwięzłość: Zmniejsza ilość kodu szablonowego.
- Wygoda: Użycie razem z API Stream do przetwarzania kolekcji.
- Programowanie funkcyjne: Wspiera elementy programowania funkcyjnego w Java.
Ograniczenia:
- Mogą być używane tylko z interfejsami funkcyjnymi (interfejsami z jednym metodą abstrakcyjną).
- Nie mogą mieć stanu (tzn. nie mogą modyfikować zmiennych spoza swojego kontekstu, jeśli te zmienne nie są jawnie zadeklarowane jako final lub efektywnie final).
Wyrażenia lambda zostały wprowadzone w Java 8.