Anonim sınıflardan lambda ve metot referanslarına
Tek metotlu anonim sınıfları özlü lambda'lar ve metot referanslarıyla değiştirin.
Kod Karşılaştırması
✕ Anonymous class
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
save(event);
}
});
✓ Java 8+
button.addActionListener(this::save);
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Daha az şablon kod
Sınıf bildirimini ve override kalabalığını ortadan kaldırır.
Daha iyi okunabilirlik
Dikkati gerçekleştirilen işlem üzerinde tutar.
Hâlâ tür güvenli
Derleyici, hedef fonksiyonel interface imzasını denetler.
Eski Yaklaşım
Anonim sınıf
Modern Yaklaşım
Metot referansı
JDK'dan itibaren
8
Zorluk
Başlangıç
JDK Desteği
Anonim sınıflardan lambda ve metot referanslarına
Mevcut
JDK 8'den itibaren kullanılabilir (Mart 2014).
Nasıl çalışır
Fonksiyonel interface'ler lambda veya metot referanslarıyla uygulanabilir. Bu yaklaşım, statik tiplemeyi ve aynı callback sözleşmesini korurken anonim sınıf şablon kodunu ortadan kaldırır.
İlgili Belgeler
Kanıt