我的枚举目前是这样的:
public enum Manufacturers {
Honda,
GM,
Toyota,
Ferrari
}
我需要创建一个 Hashmap,所以我打算这样做,对吗?
Manufacturers mfg = Manufacturers.Honda;
mfg.ordinal() // save as key
即我将使用 enumInstance.ordinal()
此外,我需要能够解析一个字符串,该字符串将作为枚举的序数值,并返回一个枚举:
Manufacturers mfg = Manufacturers.valueOf(mfgOrdinalValueAsString);
上面给了我一个错误(字符串是“1”)。这是正确的方法吗?我想我应该在那里试试 try/catch 吧?
最佳答案
.valueOf
实际上需要字符串“GM”(对于 1)。
至于将您的枚举值存储在 map 中,请使用专门为此设计的 EnumMap
- 并且速度也很快。
如果您真的想按序号引用一个值,请使用类似 Manufacturers.values()[1]
的方法。
关于java - 设置枚举的值,并解析字符串以获得枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8380677/