Esnek constructor gövdeleri
super() veya this() çağırmadan önce değerleri doğrulayın ve hesaplayın.
Kod Karşılaştırması
✕ Java 8
class Square extends Shape {
Square(double side) {
super(side, side);
// can't validate BEFORE super!
if (side <= 0)
throw new IAE("bad");
}
}
✓ Java 25+
class Square extends Shape {
Square(double side) {
if (side <= 0)
throw new IAE("bad");
super(side, side);
}
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Hızla başarısız ol
super() constructor çalışmadan önce argümanları doğrulayın.
Önce hesapla
super() çağırmadan önce değerleri türetin ve verileri hazırlayın.
Geçici çözüm yok
Kısıtlamayı aşmak için artık statik yardımcı metotlar veya fabrika kalıpları gerekmiyor.
Eski Yaklaşım
super()'dan Sonra Doğrula
Modern Yaklaşım
super()'dan Önce Kod
JDK'dan itibaren
25
Zorluk
Orta
JDK Desteği
Esnek constructor gövdeleri
Mevcut
JDK 25 LTS'de tamamlandı (JEP 513, Eylül 2025).
Nasıl çalışır
Java 25, super()'ın ilk deyim olması zorunluluğunu kaldırır. Artık üst sınıf constructor'ına devretmeden önce argümanları doğrulayabilir, türetilmiş değerler hesaplayabilir ve durumu ayarlayabilirsiniz.
İlgili Belgeler