package com.goafanti.common.utils;

import java.lang.reflect.Field;
import java.text.MessageFormat;

public class ParamUtils {


    /**
     * 根据@Param的字段名称获取name的设置值
     * @param t 输入参数类型
     * @param param 字段名称
     * @param <T>
     * @return
     */
    public static  <T> String  getParamName(T t,String param){
        Class clazz=t.getClass();
        for (Field f : clazz.getDeclaredFields()) {
            if (f.getName().equals(param)){
                Param filedAnno = f.getAnnotation(Param.class);
                return filedAnno.name();
            }
        }
        return "";
    }

    /**
     * 根据@Param的字段名称获取name的设置值
     * @param t 输入参数类型
     * @param param 字段名称
     * @param <T>
     * @return
     */
    public static  <T> String  getParamMsg(T t,String param){
        Class clazz=t.getClass();
        for (Field f : clazz.getDeclaredFields()) {
            if (f.getName().equals(param)){
                Param filedAnno = f.getAnnotation(Param.class);
                return filedAnno.message();
            }
        }
        return "";
    }
    
}
