Language Orta

Kompakt kanonik constructor

Record alanlarını parametre listelerini tekrar etmeden doğrulayın ve normalleştirin.

✕ Java 16
public record Person(String name,
                     List<String> pets) {
    // Full canonical constructor
    public Person(String name,
                  List<String> pets) {
        Objects.requireNonNull(name);
        this.name = name;
        this.pets = List.copyOf(pets);
    }
}
✓ Java 16+
public record Person(String name,
                     List<String> pets) {
    // Compact constructor
    public Person {
        Objects.requireNonNull(name);
        pets = List.copyOf(pets);
    }
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
✂️

Daha az tekrar

Parametre listesini tekrar etmeye veya her alanı elle atamaya gerek yoktur.

🛡️

Doğrulama

Null kontrolleri, aralık doğrulaması ve savunmacı kopyalar için mükemmeldir.

📖

Daha net niyet

Kompakt sözdizimi, şablon kodları değil doğrulamayı ön plana çıkarır.

Eski Yaklaşım
Açık constructor doğrulaması
Modern Yaklaşım
Kompakt constructor
JDK'dan itibaren
16
Zorluk
Orta
Kompakt kanonik constructor
Mevcut

JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)

Record'lar, parametre listesini ve alan atamalarını atlayan kompakt kanonik constructor tanımlayabilir. Derleyici, doğrulama mantığınız çalıştıktan sonra parametreleri alanlara otomatik olarak atar. Bu, ön koşul kontrolleri, savunmacı kopyalar ve normalleştirme için idealdir.

Paylaş 𝕏 🦋 in