获取Enum实例
这个问题在这里已经有了答案:
尝试一下。 我创建了一个使用id搜索类型的方法:
public static Type getType(int id) {
for (Type type : Type.values()) {
if (id == type.getId()) {
return type;
}
}
return null;
}
您可以构建一个映射来执行此查找。
static final Map<Integer, Type> id2type = new HashMap<>();
static {
for (Type t : values())
id2type.put(t.id, t);
}
public static Type forId(int id) {
return id2type.get(id);
}
在Type
类中创建一个返回Enum
实例的方法:
Type get(int n) {
switch (n) {
case 1:
return Type.ADMIN;
case 2:
return Type.EMPLOYEE;
case 3:
return Type.HIRER;
default:
return null;
}
}
提示:您需要在switch-case
添加default
,或者在方法末尾添加return null
以避免编译器错误。
更新 (感谢@AndyTurner):
循环并引用id字段会更好,因此您不会重复这些ID。
Type fromId(int id) {
for (Type t : values()) {
if (id == t.id) {
return t;
}
}
return null;
}
链接地址: http://www.djcxy.com/p/38091.html
上一篇: Get Enum instance