Случай null в switch
Обрабатывать 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
Сложность
Начинающий
Поддержка JDK
Случай null в switch
Доступно
Доступно в JDK 21 LTS (сент. 2023)
Как это работает
Switch с сопоставлением шаблонов может сопоставлять null как метку case. Это устраняет необходимость проверки null перед switch, делая обработку null явной и наглядной.
Связанная документация
Доказательство