Проблема с enum в java

297
22 апреля 2017, 22:33

В БД есть две таблички t_statuses и t_operators. В первой значения (-1 - BANNED, 0 - OFFLINE, 1 - ONLINE), во второй собственно операторы, статус которых - внешний ключ (status_id) на первую таблицу. В java коде я вместо entity-класса для статусов сделал enum:

public enum OperatorStatus {
    BANNED(-1), OFFLINE(0), ONLINE(1);
    private int id;
    OperatorStatus(int id) { this.id = id; }
    public int getValue() { return id; }
}

В базе имеется одна запись со статусом 0 - OFFLINE. Если в классе Operator поле статуса сделать типом Integer, то 0 в него и устанавливается. Но, если я создаю поле типа OperatorStatus, его значение становится равным BANNED, т.е. -1. С чем связано такое различие?

Answer 1

когда создаешь поле типа OperatorStatus, думаю ты присваиваешь значение с os.ordinal() равным 0 - т.е. первое из списка
int/Integer тоже присваеваются нулю при инициализации
P.S. как ты объявляешь поле типа OperatorStatus и у тебя не возникает NullPointerException?

READ ALSO
Как сделать выбраный пункт в Select активным

Как сделать выбраный пункт в Select активным

Я сделал выпадающий список меню элемента select и установил определенную категорию со значением value="4"

196
Позиционирование внутри <td> 2 элементов

Позиционирование внутри <td> 2 элементов

ЗдравствуйтеВнутри есть картинка и текст под ней

153
Не убирается значение checked у чекбокса

Не убирается значение checked у чекбокса

Здравствуйте! Есть код

238
Как добавлять изображения в input[type=file]?

Как добавлять изображения в input[type=file]?

ЗдравствуйтеСделал форму для добавления изображений и нужно сделать так, чтобы при выборе новых изображений не пропадали те которые пользователь...

265