您可以在枚举中编写一个匹配并返回枚举入口值的静态方法。public enum SomeEnum {
SOME_VALUE("someValue"),
OTHER_VALUE("otherValue");
private final String camelCaseValue;
private static final SomeEnum[] values = values();
SomeEnum(String camelCaseValue) {
this.camelCaseValue = camelCaseValue;
}
public static SomeEnum fromCamelCase(String camelCaseValue) {
for (SomeEnum value : values) {
if(value.camelCaseValue.equals(camelCaseValue)) {
return value;
}
}
return SOME_VALUE;
}}
当然,您不必将SOME_VALUE作为默认值返回。如果没有匹配,您可以返回null或抛出异常。如果映射可以动态编码(例如删除下划线然后比较不区分大小写),则甚至不需要存储camelCaseValue字段。
我只想展示一个静态方法来获取枚举条目背后的一般想法。