Я использую данные из веб-службы, будет хранить эти данные в классах держателей данных, а затем получать их в другом месте.java enum getter setter
Для конкретной области, наиболее подходящий тип данных перечислимого типа и, следовательно, я создал следующее перечисление:
public enum EventStatus {
PENDING(1), OPEN(2), DISPATCHED(3), APPENDED(4), CLOSED(5), REQUESTED_TO_CLOSE(
6), ACTION_REQUESTED_FROM_POLICE_STATION(7), ACTION_REQUESTED_FROMD_ISPATCHER(
8), ACTION_REQUESTED_FROM_SUPERVISOR(9);
private int value;
private EventStatus(int value) {
this.value = value;
}
public int getValue() {
return value;
}
//Just for testing from some SO answers, but no use
public void setValue(int value) {
this.value = value;
}
}
Данное перечисление используется в другом классе следующим образом:
public EventStatus getEventStatus() {
return eventStatus;
}
public void setEventStatus(EventStatus eventStatus) {
this.eventStatus = eventStatus;
}
Теперь, когда Я пытаюсь установить значение, как следующее:
event.setEventStatus(getAttributeValueInt(linkedEventElement, "status"));
, которые приравненные к
event.setEventStatus(1);
Я получаю ошибку компиляции, что метод не применим для аргументов (интермедиат)
Один из способов я могу сделать, это что-то вроде этого:
switch(getAttributeValueInt(linkedEventElement, "status")){
case 1:eventLinkedEvent.setEventStatus(EventStatus.PENDING);
//and so on...
}
Но это разрушает единственную цель перечисления.
Также как получить значение статуса события в целочисленной форме?
Может ли кто-нибудь мне посоветовать, как идти дальше?
Это плохая идея, чтобы добавить сеттер в перечисления из-за перечисления должны быть неизменны – ACV