Asics6789
@Asics6789
Студент 2 курса ФКН ВГУ, основной язык Java

Почему пропускатеся return в одном из методов Enum-класса?

Упрощенный код моего Enum:
public enum Gender {
    MALE("муж"), FEMALE("жен");

    private final String value;

    Gender(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }

    public static Gender parse(String token) {
        return switch (token) {
            case "муж" -> Gender.MALE;
            case "жен" -> Gender.FEMALE;
            default -> throw new IllegalArgumentException();
        };
    }
}


По какой-то причине при любых входных данных вылетает IllegalArgumentExceptiion().
Если смотреть на дебаге, то даже при условии equals() == true пропускается return по нужному значению и в итоге доходит до блока default. Прилагаю скриншот с дебага.

65a0eac45a912986882269.jpeg
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Предположительно идет на вход не та кодировка. Попробуй заменить на "male" / "female" и все будет ОК
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
JRE 17.0.3, всё работает.
https://onecompiler.com/java/3zz7b2xm6
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы