Language Başlangıç

Anonim sınıflarla elmas operatörü

Elmas operatörü artık anonim sınıflarla da çalışır.

✕ 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.
📏

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ıç
Anonim sınıflarla elmas operatörü
Mevcut

Anonim sınıflarla elmas operatörü JDK 9'dan itibaren kullanılabilir (Eylül 2017).

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.

Paylaş 𝕏 🦋 in