java - 设置枚举的值,并解析字符串以获得枚举

标签 java enumeration

我的枚举目前是这样的:

public enum Manufacturers {
  Honda,
  GM,
  Toyota,
  Ferrari
}

我需要创建一个 Hashmap,所以我打算这样做,对吗?

Manufacturers mfg = Manufacturers.Honda;

mfg.ordinal()  // save as key

即我将使用 enumInstance.ordinal()

存储 key

此外,我需要能够解析一个字符串,该字符串将作为枚举的序数值,并返回一个枚举:

Manufacturers mfg = Manufacturers.valueOf(mfgOrdinalValueAsString);

上面给了我一个错误(字符串是“1”)。这是正确的方法吗?我想我应该在那里试试 try/catch 吧?

最佳答案

.valueOf 实际上需要字符串“GM”(对于 1)。

至于将您的枚举值存储在 map 中,请使用专门为此设计的 EnumMap - 并且速度也很快。

如果您真的想按序号引用一个值,请使用类似 Manufacturers.values()[1] 的方法。

关于java - 设置枚举的值,并解析字符串以获得枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8380677/

相关文章:

java - HTTP 请求 - 已连接

java - 我使用 google 登录与 firebase 进行身份验证,现在我想显示当前用户保存的数据,但它不起作用

c# - WSDL、枚举和 C# : It's still murky

scala - 使用枚举作为类型参数

java - 如何动态创建和删除 JTextArea

java - Netbeans 平台

java - DDD 中的聚合对象,这是潜在的聚合吗?

java.util.concurrent.TimeUnit 类设计模式

c - 在 C 中获取下一个枚举值?

c - 通过引用传递枚举...垃圾值返回到 main