com.fastchar.utils.FastEnumUtils Maven / Gradle / Ivy
package com.fastchar.utils;
import java.util.List;
@SuppressWarnings("unchecked")
public class FastEnumUtils {
public static T formatToEnum(Class clazz, int index){
return formatToEnum(clazz, index, null);
}
public static T formatToEnum(Class clazz, int index, Enum defaultValue) {
try {
Enum[] c = clazz.getEnumConstants();
if (index >= c.length) {
return (T) defaultValue;
}
return (T) c[index];
} catch (Exception ignored) {
}
return (T) defaultValue;
}
public static T formatToEnum(Class clazz, String name){
return formatToEnum(clazz, name, null);
}
public static T formatToEnum(Class clazz, String name, Enum defaultValue) {
try {
int index = FastNumberUtils.formatToInt(name, -1);
if (index >= 0) {
return formatToEnum(clazz, index, defaultValue);
}
return (T) Enum.valueOf(clazz, name);
} catch (Exception e) {
e.printStackTrace();
}
return (T) defaultValue;
}
public static T[] getEnumValues(Class targetClass) {
return (T[]) targetClass.getEnumConstants();
}
}