首页 / JAVA / java – 映射两个相关的枚举?
java – 映射两个相关的枚举?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 映射两个相关的枚举?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1545字,纯文字阅读大概需要3分钟。
内容图文
![java – 映射两个相关的枚举?](/upload/InfoBanner/zyjiaocheng/795/9662ea2ccc6a47a9a396873d5ab4fa2d.jpg)
我有两个相关的枚举:
Enum1:
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;
}
}
Enum2:
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).
有更好的方法??
解决方法:
你可以在第二个枚举中添加一个字段,这是第一个枚举的类型.然后,您不必搜索第一个枚举数组以查找正确的对象.就像是:
enum A{
A_FOO(1),
A_BAR(2);
private int code;
private A(int code) {
this.code = code;
}
public int getCode() {
return code;
}
}
enum B{
B_FOO(1000,A_FOO),
B_BAR(2000,A_BAR);
private int code;
private A status;
private B(int code, A status) {
this.code = code;
this.status = status;
}
public int getCode() {
return code;
}
public A getStatus() {
return status;
}
}
因此,如果B enum中的代码是唯一的,您可以实现像getBbyCode()这样的方法,然后你也有B.A.
内容总结
以上是互联网集市为您收集整理的java – 映射两个相关的枚举?全部内容,希望文章能够帮你解决java – 映射两个相关的枚举?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。