Language Начинающий

Switch как выражение, возвращающее значение — без break и без fall-through.

✕ Java 8
String msg;
switch (day) {
    case MONDAY:
        msg = "Start";
        break;
    case FRIDAY:
        msg = "End";
        break;
    default:
        msg = "Mid";
}
✓ Java 14+
String msg = switch (day) {
    case MONDAY  -> "Start";
    case FRIDAY  -> "End";
    default      -> "Mid";
};
Заметили проблему в этом коде? Сообщите нам.
🎯

Возвращает значение

Присвоить результат switch напрямую — временная переменная не нужна.

🛡️

Нет fall-through

Стрелочный синтаксис устраняет случайные ошибки fall-through из-за пропущенного break.

Проверка исчерпываемости

Компилятор обеспечивает охват всех случаев.

Старый подход
Оператор switch
Современный подход
Switch-выражение
Начиная с JDK
14
Сложность
Начинающий
Switch-выражения
Доступно

Доступно в JDK 14 (март 2020)

Switch-выражения возвращают значение напрямую, используют стрелочный синтаксис для предотвращения ошибок fall-through, а компилятор проверяет исчерпываемость. Это заменяет подверженную ошибкам форму оператора.