استجابات أخطاء قائمة على Records
استخدم Records للحصول على أنواع استجابة أخطاء موجزة وثابتة.
مقارنة الكود
✕ 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());
}
}
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
موجز
عرّف أنواع الأخطاء في 3 أسطر بدلاً من 30.
ثابت
لا يمكن تعديل بيانات الخطأ عن طريق الخطأ بعد الإنشاء.
toString تلقائي
مثالي للتسجيل — يُظهر جميع الحقول تلقائياً.
الأسلوب القديم
Map أو فئة مطوّلة
الأسلوب الحديث
Error Records
منذ JDK
16
الصعوبة
متوسط
دعم JDK
استجابات أخطاء قائمة على Records
متاح
متاح على نطاق واسع منذ JDK 16 (مارس 2021)
كيف يعمل
Records مثالية لاستجابات الأخطاء — فهي ثابتة ولها equals/hashCode مدمجان للمقارنة و toString للتسجيل. المُنشئات المخصصة تُضيف التحقق أو القيم الافتراضية.
توثيق ذو صلة