Sobes.tech
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, return olmadan: (a, b) -> a + b
  • Çok satırlı gövde, süslü parantez ve return ile (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.