我有枚举类型 ReportTypeEnum
它在我所有类的方法之间传递,但我需要在 URL 上传递它,所以我使用序数方法来获取 int 值。在我的另一个 JSP 页面中得到它之后,我需要将它转换回 ReportTypeEnum
以便我可以继续传递它。
如何将序数转换为 ReportTypeEnum
?
使用 Java 6 SE。
原文由 Lennie 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有枚举类型 ReportTypeEnum
它在我所有类的方法之间传递,但我需要在 URL 上传递它,所以我使用序数方法来获取 int 值。在我的另一个 JSP 页面中得到它之后,我需要将它转换回 ReportTypeEnum
以便我可以继续传递它。
如何将序数转换为 ReportTypeEnum
?
使用 Java 6 SE。
原文由 Lennie 发布,翻译遵循 CC BY-SA 4.0 许可协议
这几乎肯定 是个坏主意。当然,如果序号 _实际上是持久的_(例如,因为有人已将 URL 加入书签)——这意味着您必须始终保留 enum
将来的顺序,这对于代码维护者来说可能并不明显。
为什么不使用 --- 编码 enum
myEnumValue.name()
(并通过 ReportTypeEnum.valueOf(s)
解码)呢?
原文由 oxbow_lakes 发布,翻译遵循 CC BY-SA 2.5 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
要将序数转换为其枚举表示,您可能需要这样做:
请注意数组边界。
请注意,每次调用
values()
都会返回一个新克隆的数组,这可能会对性能产生负面影响。如果要经常调用它,您可能需要缓存该数组。关于如何缓存
values()
的代码示例。编辑此答案以包含评论中给出的反馈