Anonim sınıflarla elmas operatörü
Elmas operatörü artık anonim sınıflarla da çalışır.
Kod Karşılaştırması
✕ Java 7/8
Map<String, List<String>> map =
new HashMap<String, List<String>>();
// anonymous class: no diamond
Predicate<String> p =
new Predicate<String>() {
public boolean test(String s) {..}
};
✓ Java 9+
Map<String, List<String>> map =
new HashMap<>();
// Java 9: diamond with anonymous classes
Predicate<String> p =
new Predicate<>() {
public boolean test(String s) {..}
};
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Tutarlı kurallar
Elmas her yerde çalışır — hem constructor'larda hem anonim sınıflarda.
Daha az tekrar
Tür argümanları solda bir kez belirtilir, asla tekrarlanmaz.
DRY ilkesi
Derleyici türü zaten biliyor — neden iki kez yazasınız ki?
Eski Yaklaşım
Tür Argümanlarını Tekrarlayın
Modern Yaklaşım
Elmas <>
JDK'dan itibaren
9
Zorluk
Başlangıç
JDK Desteği
Anonim sınıflarla elmas operatörü
Mevcut
Anonim sınıflarla elmas operatörü JDK 9'dan itibaren kullanılabilir (Eylül 2017).
Nasıl çalışır
Java 7, <> operatörünü tanıttı ancak anonim iç sınıflarla çalışmıyordu. Java 9 bunu düzeltti, böylece sağ tarafta tür argümanlarını asla tekrar etmeniz gerekmez.
İlgili Belgeler