Junior
Co umožňují lambda výrazy v Javě?
sobes.tech AI
Odpověď od AI
Lambda výrazy v Java, zavedené v Java 8, umožňujú:
- Implementovať rozhrania s jednou abstraktnou metódou (funkčné rozhrania): Toto je ich hlavný účel. Lambda výrazy poskytujú stručnú syntax na vytváranie inštancií funkčných rozhraní.
// Pred Java 8
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Ahoj pred Java 8!");
}
};
// S Java 8
Runnable lambdaRunnable = () -> System.out.println("Ahoj Java 8!");
- Prenášať správanie (funkcie) ako argumenty metódam: To rozširuje možnosti funkcionálneho programovania v Jave. Metódy môžu akceptovať lambda výrazy ako parametre.
// Príklad použitia API Stream s lambda
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream()
.filter(name -> name.startsWith("A")) // Lambda ako argument filter
.forEach(System.out::println); // Lambda (referencia na metódu) ako argument forEach
- Používať API Stream: Lambda výrazy sú základom pre prácu s novým API Stream, umožňujúc efektívne spracovanie kolekcií dát.
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sumOfEven = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(Integer::intValue)
.sum();
-
Zjednodušiť implementáciu anonymných vnorených tried pre funkčné rozhrania: Lambda nahrádzajú zdĺhavú syntax anonymných tried v tomto kontexte.
-
Zlepšiť čitateľnosť kódu: Pre jednoduché operácie lambda robia kód stručnejším a zrozumiteľnejším.
-
Umožniť odložené vykonanie kódu: Lambda vyjadrenie opisuje akciu, ktorá bude vykonaná neskôr, keď bude volaná.
Lambda majú tiež prístup k lokálnym premenným vonkajšieho prostredia (ak sú efektívne final).
Celkovo lambda výrazy robia Java výraznejšou a vhodnejšou pre funkčný štýl programovania.