Odpowiedzi błędów oparte na rekordach
Używaj rekordów do zwięzłych, niemutowalnych typów odpowiedzi błędów.
Porównanie kodu
✕ 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());
}
}
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Zwięzłość
Definiuj typy błędów w 3 liniach zamiast 30.
Niemutowalny
Dane błędu nie mogą być przypadkowo zmodyfikowane po utworzeniu.
Automatyczny toString
Idealny do logowania — wyświetla wszystkie pola automatycznie.
Stare podejście
Mapa lub rozwlekła klasa
Nowoczesne podejście
Rekordy błędów
Od JDK
16
Poziom trudności
Średniozaawansowany
Wsparcie JDK
Odpowiedzi błędów oparte na rekordach
Dostępne
Szeroko dostępne od JDK 16 (marzec 2021)
Jak to działa
Rekordy są idealne dla odpowiedzi błędów — są niemutowalne, mają wbudowane equals/hashCode do porównań i toString do logowania. Niestandardowe konstruktory dodają walidację lub wartości domyślne.
Powiązana dokumentacja
Dowód