/**
* 根据索引获取
* @param <T>
* @param clazz
* @param ordinal
* @return
*/
public static <T extends Enum<T>> T valueOf(Class<T> clazz, int ordinal) {
return (T)clazz.getEnumConstants()[ordinal];
}
/**
* 根据name获取
* @param <T>
* @param enumType
* @param name
* @return
*/
public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name) {
return (T)Enum.valueOf(enumType, name);
}
总结:
枚举根据索引获取名字:
枚举类.class.getEnumConstants()[索引值]
根据name获得:
枚举类.valueOf(枚举类.class, name)
根据name获得索引值:
枚举类.valueOf("voice").ordinal() 如System.out.println(MonthsEnum.valueOf(
"MAR"
).ordinal());
根据对象获得索引值:.ordinal()