小编典典

从枚举序数转换为枚举类型

all

我有在ReportTypeEnum我所有类的方法之间传递的枚举类型,但是我需要在 URL 上传递它,所以我使用序数方法来获取 int 值。在我的另一个
JSP 页面中得到它之后,我需要将它转换回一个ReportTypeEnum,以便我可以继续传递它。

如何将序数转换为ReportTypeEnum

使用 Java 6 SE。


阅读 81

收藏
2022-04-01

共1个答案

小编典典

要将序数转换为其枚举表示,您可能需要这样做:

ReportTypeEnum value = ReportTypeEnum.values()[ordinal];

请注意数组边界。

请注意,每次调用都会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);

注意你的数组界限。


编辑此答案以包含评论中给出的反馈

2022-04-01