我有在ReportTypeEnum我所有类的方法之间传递的枚举类型,但是我需要在 URL 上传递它,所以我使用序数方法来获取 int 值。在我的另一个 JSP 页面中得到它之后,我需要将它转换回一个ReportTypeEnum,以便我可以继续传递它。
ReportTypeEnum
如何将序数转换为ReportTypeEnum?
使用 Java 6 SE。
要将序数转换为其枚举表示,您可能需要这样做:
ReportTypeEnum value = ReportTypeEnum.values()[ordinal];
请注意数组边界。
请注意,每次调用都会values()返回一个新克隆的数组,这可能会对性能产生负面影响。如果要经常调用它,您可能需要缓存该数组。
values()
如果我要使用values()很多:
enum Suit { Hearts, Diamonds, Spades, Clubs; public static final Suit values[] = values(); }
同时where.java:
Suit suit = Suit.values[ordinal];
如果您希望阵列是私有的,请成为我的客人:
private static final Suit values[] = values(); public static Suit get(int ordinal) { return values[ordinal]; } ... Suit suit = Suit.get(ordinal);
注意你的数组界限。
编辑此答案以包含评论中给出的反馈