从枚举序号转换为枚举类型
我有一个枚举类型,可以在我所有类中的方法之间传递,但我需要在URL上传递它,所以我使用序号方法来获取int值。在我的另一个JSP页面中得到它之后,我需要将其转换回,以便我可以继续传递它。ReportTypeEnum
ReportTypeEnum
如何将序数转换为 ?ReportTypeEnum
使用 Java 6 SE。
我有一个枚举类型,可以在我所有类中的方法之间传递,但我需要在URL上传递它,所以我使用序号方法来获取int值。在我的另一个JSP页面中得到它之后,我需要将其转换回,以便我可以继续传递它。ReportTypeEnum
ReportTypeEnum
如何将序数转换为 ?ReportTypeEnum
使用 Java 6 SE。
要将序数转换为其枚举重现,您可能需要执行以下操作:
ReportTypeEnum value = ReportTypeEnum.values()[ordinal];
请注意数组边界。
请注意,每次调用 都会返回一个新克隆的数组,这可能会对性能产生负面影响。如果要经常调用数组,则可能需要缓存该数组。values()
此答案经过编辑,以包括评论中给出的反馈
这几乎可以肯定是一个坏主意。当然,如果序数是事实上的持久存在(例如,因为有人为URL添加了书签) - 这意味着您将来必须始终保留顺序,这对于代码维护者来说可能并不明显。enum
为什么不使用(和解码方式)进行编码呢?enum
myEnumValue.name()
ReportTypeEnum.valueOf(s)