@Charik635

Как в ENUM добавить знак «-» перед выражением?

enum Roman {
    O(0), I(1), V(5), X(10), L(50), C(100), -I(-1),- V(-5), -X(-10),- L(-50),- C(-100); // здесь если ввести минусы, то компилятор ругается
    static Roman valueOf(int value) {
        for (Roman d : Roman.values())
            if (value == d.getValue())
                return d;
        throw new IllegalArgumentException();
    }

    Roman(int value) {
        this.value = value;
    }

    public int getValue() {
        return this.value;
    }

    int value;
}
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 3
BorLaze
@BorLaze
Java developer
Никак.

Значение enum - это обычный идентификатор Java, а символ тире в нем не разрешен.
Ответ написан
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Вы можете попробовать вместо минусов(тире) использовать нижнее подчеркивание.
-V => _V

Можете глянуть на пример enum для римских цифр тут:
https://stackoverflow.com/questions/3921866/how-do...
Ответ написан
@acwartz
angular, hello world java, chrome ext/, delphi
Ну так впишите функцию которая вернет значение в отрицательном значении(x *= -1).
Типа Roman.V.nagative()

А то как вы хотите - нельзя. - это арифметический оператор а потом уже знак который в имена переменных и классов использовать нельзя.
Я бы с функцией не заморачивался завел бы V(5) и negV(-5)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы