حالة null في switch
عالج null مباشرةً كحالة في switch — لا حاجة لحارس منفصل.
مقارنة الكود
✕ Java 8
// Must check before switch
if (status == null) {
return "unknown";
}
return switch (status) {
case ACTIVE -> "active";
case PAUSED -> "paused";
default -> "other";
};
✓ Java 21+
return switch (status) {
case null -> "unknown";
case ACTIVE -> "active";
case PAUSED -> "paused";
default -> "other";
};
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
صريح
معالجة null مرئية مباشرةً في switch.
لا NPE
التبديل على قيمة null لن يُطلق NullPointerException.
متكامل
جميع الحالات بما فيها null في تعبير switch واحد.
الأسلوب القديم
حارس قبل switch
الأسلوب الحديث
case null
منذ JDK
21
الصعوبة
مبتدئ
دعم JDK
حالة null في switch
متاح
متاح على نطاق واسع منذ JDK 21 LTS (سبتمبر 2023)
كيف يعمل
يمكن لـ switch بمطابقة الأنماط مطابقة null كتسمية حالة. يُزيل هذا الحاجة للتحقق من null قبل switch ويجعل معالجة null صريحةً ومرئية.
توثيق ذو صلة