Errors مبتدئ

عالج 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
الصعوبة
مبتدئ
حالة null في switch
متاح

متاح على نطاق واسع منذ JDK 21 LTS (سبتمبر 2023)

يمكن لـ switch بمطابقة الأنماط مطابقة null كتسمية حالة. يُزيل هذا الحاجة للتحقق من null قبل switch ويجعل معالجة null صريحةً ومرئية.

مشاركة 𝕏 🦋 in