我正在从 Web 服务中获取数据,将把这些数据存储在数据持有类中,然后在其他地方获取该数据。
对于特定字段,最合适的数据类型是枚举,因此我创建了以下枚举:
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);
我遇到了编译错误,提示该方法不适用于(int)参数
解决方法之一是如下:
switch(getAttributeValueInt(linkedEventElement, "status")){
case 1:eventLinkedEvent.setEventStatus(EventStatus.PENDING);
//and so on...
}
但这破坏了枚举的唯一目的。
还有如何以整数形式获取事件状态值?
有人可以指导我如何继续吗?