Junior
Java programlama bağlamında lambda ifadeleri ve referans metodları hakkında bilgi verin ve bunların Android geliştirmedeki kullanımını açıklayın.
sobes.tech yapay zeka
AI'dan gelen yanıt
Lambda ifadeleri, anonim fonksiyonlar oluşturmak için kısa bir notasyondur. İşlevselliği, bir yönteme argüman olarak geçirmeye veya adını belirtmeden fonksiyon oluşturmaya olanak tanır. Sözdizimi: (parametreler) -> { gövde }. Tek soyut yöntemi (fonksiyonel arayüzler) uygulamak için kullanılır.
Android'de kullanım:
- Olay işleyicileri (tıklamalar, dokunma olayları).
- Dinleyici arayüzlerinin uygulanması (örneğin,
OnClickListener,OnCompleteListener). - Koleksiyonları işlemek için Stream API ile çalışma (filtreleme, dönüştürme).
// Java 8 öncesi
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Tıklandı!", Toast.LENGTH_SHORT).show();
}
});
// Lambda ifadesi kullanılarak
button.setOnClickListener(v -> {
Toast.makeText(context, "Tıklandı!", Toast.LENGTH_SHORT).show();
});
Referans metodları, mevcut metodlara veya yapıcılarına doğrudan çağrı yapmadan daha kısa bir şekilde atıfta bulunmanın bir yoludur. Sadece bir yöntemi çağıran lambda ifadelerinin yerine kullanılırlar.
Referans metod türleri:
- Statik metoda referans:
Sınıf::statikMetod - Nesne örneğinin metoda referans:
nesne::metod - Belirli bir türün herhangi bir nesnesinin metoda referans:
Tür::metod - Yapıcıya referans:
Sınıf::new
Android'de kullanım:
- Dinleyicilerle çalışırken lambda ifadelerini kısaltmak.
- Stream API'de, metodları akışın öğelerine uygulamak için.
// Lambda
List<String> isimler = Arrays.asList("Alice", "Bob");
isimler.forEach(isim -> System.out.println(isim));
// Metod referansı
isimler.forEach(System.out::println);
Avantajlar:
- Kod okunabilirliğini artırır, özellikle basit işlemler için.
- Daha kompakt kod.
- Stream API'de kullanımı, koleksiyonların işlenmesini daha fonksiyonel ve verimli hale getirir.