Record tabanlı hata yanıtları
Özlü, değiştirilemez hata yanıt türleri için record kullanın.
Kod Karşılaştırması
✕ Java 8
// Verbose error class
public class ErrorResponse {
private final int code;
private final String message;
// constructor, getters, equals,
// hashCode, toString...
}
✓ Java 16+
public record ApiError(
int code,
String message,
Instant timestamp
) {
public ApiError(int code, String msg) {
this(code, msg, Instant.now());
}
}
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Özlü
Hata türlerini 30 satır yerine 3 satırda tanımlayın.
Değiştirilemez
Hata verileri oluşturulduktan sonra yanlışlıkla değiştirilemez.
Otomatik toString
Günlükleme için mükemmel — tüm alanları otomatik olarak gösterir.
Eski Yaklaşım
Map veya Ayrıntılı Sınıf
Modern Yaklaşım
Hata Record'ları
JDK'dan itibaren
16
Zorluk
Orta
JDK Desteği
Record tabanlı hata yanıtları
Mevcut
JDK 16'dan itibaren geniş çapta kullanılabilir (Mart 2021)
Nasıl çalışır
Record'lar hata yanıtları için mükemmeldir — değiştirilemezler, karşılaştırma için yerleşik equals/hashCode'a ve günlükleme için toString'e sahiptirler. Özel yapıcılar doğrulama veya varsayılan değerler ekler.
İlgili Belgeler