What i mean by that is suppose
Enum xyzType {
A,
B,
C,
D
}
我知道通过执行 xyzType.C.ordinal() 可以获取C的值,其值为2。假设我只有2,我想要获取枚举类型C。我似乎在枚举API中找不到任何可以实现这一点的东西。我希望不用编写一个巨大的switch语句来比较每个序数值并返回枚举。有更好的方法吗?
What i mean by that is suppose
Enum xyzType {
A,
B,
C,
D
}
我知道通过执行 xyzType.C.ordinal() 可以获取C的值,其值为2。假设我只有2,我想要获取枚举类型C。我似乎在枚举API中找不到任何可以实现这一点的东西。我希望不用编写一个巨大的switch语句来比较每个序数值并返回枚举。有更好的方法吗?
最简单的方法是:
xyzType xyz = xyzType.values()[ordinalValue];
然而,这将每次都创建一个新的数组。另一种选择是在枚举内部缓存它:
public enum Xyz {
Foo, Bar;
private static final Xyz[] VALUES = values();
public Xyz fromOrdinal(int ordinal) {
return VALUES[ordinal];
}
}
xyzType
пјҢиҝҳжҳҜжһҡдёҫе®һдҫӢC
зҡ„xyzType
зұ»еһӢпјҹ - chrylis -cautiouslyoptimistic-