给出以下定义:
public enum SampleEnum1 { Uno, Dos, Tres }
public enum SampleEnum2 { One, Two, Three, Four }
我需要两种方法来做到这一点:
给定整数2,如果将
Dos
应用于SampleEnum1
,则返回Two
,如果将SampleEnum2
应用于One
给定值
1
,返回实际上,我需要将枚举分类转换为枚举定义中的序号,反之亦然。
我不介意使用泛型,反射或其他任何方法,只要对任何枚举都可以使用相同的两种方法。
你有解决方案吗?
最佳答案
另一种方法是使用类似
public static <E etxends Enum<E>> E lookup(Class<E> eClass, int number) {
return eClass.getEnumConstants()[number-1];
}
SampleEnum1 se1 = lookup(SampleEnum1.class, 2);
顺便说一句:您可以从零开始,这也将简化您的代码。