Этот вопрос проверяет понимание switch expressions как более лаконичной и функциональной альтернативы традиционному switch statement, позволяющей использовать выражения в case и возвращать значения.
Switch expressions — это эволюция традиционного switch statement, представленная в Java 14 как стабильная функция. Основное отличие в том, что switch expression возвращает значение, а не просто выполняет блоки кода. Это позволяет использовать его в присваиваниях, возвратах и лямбда-выражениях.
-> вместо двоеточия :break// Традиционный switch statement
String dayType;
switch (day) {
case MONDAY:
case FRIDAY:
dayType = "Work day";
break;
case SATURDAY:
case SUNDAY:
dayType = "Weekend";
break;
default:
dayType = "Unknown";
}
// Switch expression
String dayType = switch (day) {
case MONDAY, FRIDAY -> "Work day";
case SATURDAY, SUNDAY -> "Weekend";
default -> "Unknown";
};Switch expressions особенно полезны при работе с enum, sealed классами и в функциональном программировании. Они уменьшают шаблонный код и делают логику более читаемой. Например, в обработчиках команд или при маппинге значений.
Вывод: Switch expressions стоит применять везде, где требуется преобразование входного значения на основе нескольких условий. Это делает код более безопасным, лаконичным и соответствующим современным стандартам Java.