Kompakt kanonik constructor
Record alanlarını parametre listelerini tekrar etmeden doğrulayın ve normalleştirin.
Kod Karşılaştırması
✕ 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.
Modern yöntem neden daha iyi
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
JDK Desteği
Kompakt kanonik constructor
Mevcut
JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)
Nasıl çalışır
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.
İlgili Belgeler