所以我有这个枚举不能按我的预期工作,需要一些修改:
public enum MyEnum {
CODE000("text description comes here"),
private final String value;
private static final Map<String, MyEnum> LOOKUP = Maps.uniqueIndex(
Arrays.asList(MyEnum.values()),
MyEnum::getValue
);
MyEnum(final String value) {
this.value = value;
}
public String getValue() {
return value;
}
public static MyEnum fromStatus(String status) {
return LOOKUP.get(status);
}
}
Run Code Online (Sandbox Code Playgroud)
它现在的工作方式是:
MyEnum.fromStatus("text description comes here") 当然,我想要反过来:
MyEnum.fromStatus("CODE000") 归还我 "text description comes here"
有人可以建议我如何改变这个吗?
你需要的是一个文字查找,你可以通过调用valueOf:
MyEnum code000 = MyEnum.valueOf("CODE000");
Run Code Online (Sandbox Code Playgroud)
然后:
String val = code000.getValue();
Run Code Online (Sandbox Code Playgroud)
请注意,如果传递给的字符串valueOf未解析为枚举文字,则会引发异常MyEnum.