我的意思是假设
Enum xyzType {
    A,
    B,
    C,
    D
}
我知道我可以通过xyzType.C.ordinal()得到序数为C的值,假设我只有2,我会得到枚举类型C.我似乎找不到任何东西这样做的枚举API.我不希望有一个巨大的switch语句来比较每个序数值并返回枚举.这样做有好处吗?
Jon*_*eet 13
最简单的方法是:
xyzType xyz = xyzType.values()[ordinalValue];
但是,这将每次创建一个新数组.另一种方法是将其缓存在枚举中:
public enum Xyz {
    Foo, Bar;
    private static final Xyz[] VALUES = values();
    public Xyz fromOrdinal(int ordinal) {
        return VALUES[ordinal];
    }
}