【发布时间】:2015-09-18 09:18:53
【问题描述】:
我有两个相关的枚举:
枚举1:
public enum HttpStatusCode {
ACCEPTED(202),
OK(200),
CREATED(201),
BAD_REQUEST(400),
NOT_FOUND(404),
METHOD_NOT_ALLOWED(405),
REQUEST_TIMEOUT (408),
FORBIDDEN(403),
CONFLICT(409),
INTERNAL_SERVER_ERROR(500),
NOT_IMPLEMENTED(501);
private int httpStatusCode;
private HttpStatusCode(int name) {
this.httpStatusCode = name;
}
public int getHttpStatusCode() {
return httpStatusCode;
}
}
枚举2:
public enum ProtocolStatusCode {
ACCEPTED(1000),
OK(2000),
CREATED(2001),
BAD_REQUEST(4000)
private int protocolStatusCode;
private ProtocolStatusCode(int protocolStatusCode) {
this.protocolStatusCode = protocolStatusCode;
}
public int getStatusCode() {
return protocolStatusCode;
}
}
这两个枚举值在一个映射中是相关的,例如
协议状态码 2000(OK)与 200(OK)有映射关系。
因此,在我的代码中,我将获得 ProtocolStatusCode (2000),并且与此相对应,我需要 HttpStatusCode (200)。
我正在考虑将 ProtocolStatusCode 枚举维护为
ACCEPTED(1000, 202),
OK(2000, 200)
所以当我得到 2000 时,我会反向查找枚举以获取 OK,然后调用 getter 来获取与 2000 相关的第二个值(200)。
有更好的方法吗??
【问题讨论】: