Коллеги, видел многие писали, что решили через switch, я сделал через свитч лямбду, но компилятор обругал, в итоге решил через обычный if, но интересно как можно через switch. Заранее спасибо.
Денис Скопцов
24 уровень
как решить через SWITCH
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
4 марта 2023, 21:52
Ни условия, ни кода... ни ответа :)
А в целом, могу предположить что ты по совету идеи заюзал pattern matching switch который был презентован в 17 JDK, и конечно же местный валидатор на нём не работает, из-за чего твоё решение и забраковал.
0
Денис СкопцовКладовщик в Мануфактура Малюгина
5 марта 2023, 00:20
без советов идеи.
return switch (o.getClass().getSimpleName()) {
case "Cow" -> "Корова";
case "Dog" -> "Собака";
case "Whale" -> "Кит";
default -> "Неизвестное животное";
};
такое не пропустило
Выражение синтаксически не верное.
0
Денис Enterprise Java Developer
5 марта 2023, 09:29
Оно и по содержанию более чем верное :) Любопытно почему не пропустило, с виду вполне обычный switch. В более поздних версиях можно было бы сделать еще чуток крассиваее.
Но скорее всего первое моё утверждение всё же верно, этот формат записи появился позже той версии компилятора которую использует валидатор. Как вариант, можно было проверку на null еще добавить перед ретурном, чтобы NPE не выхватить.
0