【发布时间】:2014-06-30 22:19:32
【问题描述】:
我发现在 Enum 中使用静态初始化块非常适合实现自定义 valueOf 函数,如 here 所述。
public static RandomEnum getEnum(String strVal) {
return strValMap.get(strVal);
}
private static final Map<String, RandomEnum> strValMap;
static {
final Map<String, RandomEnum> tmpMap = Maps.newHashMap();
for(final RandomEnum en : RandomEnum.values()) {
tmpMap.put(en.strVal, en);
}
strValMap = ImmutableMap.copyOf(tmpMap);
}
现在,我有大约两打 Enum 类,我想为所有这些类添加一个自定义 valueOf ——有没有一种方法可以做到这一点,而无需将其复制粘贴到每个类型/文件中?
【问题讨论】:
标签: java enums static-initialization