Errors Начинающий

Обрабатывать null непосредственно как case в 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

Switch на значение null не выбрасывает NullPointerException.

📐

Всё в одном

Все случаи, включая null, в одном выражении switch.

Старый подход
Проверка перед switch
Современный подход
case null
Начиная с JDK
21
Сложность
Начинающий
Случай null в switch
Доступно

Доступно в JDK 21 LTS (сент. 2023)

Switch с сопоставлением шаблонов может сопоставлять null как метку case. Это устраняет необходимость проверки null перед switch, делая обработку null явной и наглядной.