package com.miaxis.common.utils;

import com.miaxis.common.exception.CustomException;

import java.lang.reflect.Method;

/**
 * 枚举工具类
 *
 * @author chenjian
 */
public class EnumUtils {
    /**
     * 判断数值是否属于枚举类的值
     *
     * @param clzz 枚举类 Enum
     * @param code
     * @return
     */
    public static Object getEnumEntityByCode(Class clzz, Integer code)
    {
        try{
            if (clzz.isEnum()) {
                Object[] enumConstants = clzz.getEnumConstants();
                Method getCode = clzz.getMethod("getCode");
                for (Object enumConstant : enumConstants) {
                    if (getCode.invoke(enumConstant).equals(code)) {
                        return  enumConstant;
                    }
                }
            }
        }catch (Exception e){
            throw new CustomException("反射运行异常");
        }

        return null;


    }
}
