【发布时间】:2021-03-28 11:15:13
【问题描述】:
我有以下枚举及其值:
如何将枚举的值转换为枚举?例如,从“Rocky”作为输入,如何将类的枚举设置为 ROCK?
我尝试像这样使用 valueOf:
gen gen1 = gen.valueOf("Rocky")
但是,它会引发“无枚举常量”的 IllegalArgumentException。
我一直在努力解决这个问题,尽管我认为这太容易了,但我是初学者。我不得不将直接枚举常量作为输入,而不是将枚举的值作为输入。但是我想了解如何将枚举的值转换为枚举常量?
【问题讨论】:
-
你的枚举项是
ROCK,而不是Rocky,所以valueOf("Rocky")不起作用。如果你想通过字段值找到你的枚举,你必须遍历并检查每一个。 -
或者您必须添加自己的方法,该方法根据值返回枚举。创建一个静态方法,遍历所有枚举,如果找到正确的,则返回它
-
如果要使用 valueOf 需要给出枚举项的名称,
gen.valueOf("ROCK")或重写方法。这回答了你的问题了吗? Override valueof() and toString() in Java enum -
您的代码无法编译。