All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy