我在Java 8中定义了一个枚举,如下所示:
public enum Cflb implements IBaseEnum {
没收违法所得("没收违法所得、没收非法财物", 2),
暂扣或者吊销许可证("暂扣或者吊销许可证、暂扣或者吊销执照", 4);
private String name;
private int value;
public void setName(String name) {
this.name = name;
}
public void setValue(int value) {
this.value = value;
}
Cflb(String name, int value) {
this.name = name;
this.value = value;
}
@Override
public String getName() {
return name;
}
@Override
public int getValue() {
return value;
}
}
如何通过“暂扣或吊销许可证,暂扣或吊销执照”枚举?注意:不能按值获取枚举。代码可能像这样:
Cflb cflb = getEnumnByInternalName("暂扣或者吊销许可证、暂扣或者吊销执照");
答案 0 :(得分:3)
使用values()
遍历枚举常量并比较name
:
static Cflb getEnumnByInternalName(String iname) {
for(Cbfl c : values()){
if(c.name.equals(iname)){
return c;
}
}
return null; //or throw an Exception, whatever you need
}
然后您可以像这样使用它:
Cflb cflb = Cflb.getEnumnByInternalName("暂扣或者吊销许可证、暂扣或者吊销执照");
正如上面@khelwood所提到的:删除二传手。