我想从其字符串值(或可能是任何其他值)查找枚举.我尝试了以下代码,但它不允许在初始化程序中使用静态代码.有一个简单的方法吗?
public enum Verbosity {
BRIEF, NORMAL, FULL;
private static Map<String, Verbosity> stringMap = new HashMap<String, Verbosity>();
private Verbosity() {
stringMap.put(this.toString(), this);
}
public static Verbosity getVerbosity(String key) {
return stringMap.get(key);
}
};
Run Code Online (Sandbox Code Playgroud) 将枚举保存到数据库的最佳方法是什么?
我知道Java提供name()和valueOf()方法来枚举值转换为字符串和背部.但是有没有其他(灵活的)选项来存储这些值?
有没有一种聪明的方法可以将枚举变成唯一的数字(ordinal()使用起来不安全)?
更新:
感谢所有令人敬畏和快速的答案!这是我怀疑的.
但请注意"工具包"; 这是一种方式.问题是我必须为我创建的每个Enum类型添加相同的方法.这是很多重复的代码,目前,Java不支持任何解决方案(Java枚举不能扩展其他类).