作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有 enum
为:
public enum EnumStatus {
PASSED(40L, "Has Passed"),
AVERAGE(60L, "Has Average Marks"),
GOOD(80L, "Has Good Marks");
private java.lang.String name;
private java.lang.Long id;
EnumStatus(Long id, java.lang.String name) {
this.name = name;
this.id = id;
}
public java.lang.String getName() {
return name;
}
public java.lang.Long getId() {
return id;
}
}
我必须仅使用 id (40,60, 80) 来获取枚举名称 (PASSED
, AVERAGE
, GOOD
)。我该怎么做?
最佳答案
在您的 enum
中创建一个静态方法,该方法在 values
中搜索(隐式方法/成员,不知道到底是哪个)并返回相应的值。对于方法找不到匹配值的情况,您应该创建一个特殊条目,例如UNKNOWN
,您可以返回。这样,您就不必返回 null
,这总是一个坏主意。
public static EnumStatus getById(Long id) {
for(EnumStatus e : values()) {
if(e.id.equals(id)) return e;
}
return UNKNOWN;
}
顺便说一句 - 你的代码似乎是错误的。 GOOD
之后的括号似乎不属于那里。
关于java - 如何使用 id 检索枚举名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15380243/
我是一名优秀的程序员,十分优秀!