Middle
Java'da lambda ifadeleri nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da lambda ifadesi anonim bir fonksiyondur. Bu, fonksiyonelliği bir metodun argümanı olarak veya kodu veri olarak kullanmaya olanak tanır.
Ana özellikler:
- Anonimlik: İsmi yoktur.
- Fonksiyonel arayüz: Lambda ifadesi her zaman fonksiyonel bir arayüzle ilişkilidir (tek soyut metoda sahip arayüz).
- Sözdizimi:
(parametreler) -> { gövde }
Consumer fonksiyonel arayüzü ile kullanım örneği:
import java.util.function.Consumer;
// Consumer<T> fonksiyonel arayüzü bir soyut metoda sahiptir: accept(T t)
Consumer<String> selamla = (isim) -> {
System.out.println("Merhaba, " + isim);
};
selamla.accept("Dünya"); // Çıktı: Merhaba, Dünya
Runnable arayüzü ile kullanım örneği:
// Runnable arayüzü bir soyut metoda sahiptir: run()
Runnable görev = () -> {
System.out.println("Görev ayrı bir thread'de çalışıyor");
};
new Thread(görev).start(); // Görevi yeni bir thread'de başlatır
Sözdizimi varyasyonları:
- Parametresiz:
() -> { System.out.println("Merhaba"); } - Parantez olmadan tek parametre:
isim -> System.out.println("Merhaba, " + isim) - Parantez ve tiplerle çoklu parametreler:
(int a, int b) -> { return a + b; } - Tipler olmadan çoklu parametreler (tür çıkarımı):
(a, b) -> a + b - Tek satırlık gövde,
returnolmadan:(a, b) -> a + b - Çok satırlı gövde, süslü parantez ve
returnile (gerekirse):(a, b) -> { int toplam = a + b; return toplam; }
Lambda ifadeleri kodu daha kompakt, okunabilir yapar ve Java'da fonksiyonel programlama kullanılmasını sağlar.