package com.ruoyi.common.utils;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * 类工具
 */
public class FiledUtils {
    public static Object getFiledValueByName(Object o, String filedName) {
        try {
            String firstLetter = filedName.substring(0, 1).toUpperCase();
            String getter = "get" + firstLetter + filedName.substring(1);
            Method method = o.getClass().getMethod(getter);
            return method.invoke(o);
        } catch (Exception e) {
            return null;
        }
    }

    public static void setFiledValuesByName(Object o, String filedName, Object filedValue) {
        try {
            // 获取o类的字节文件对象
            Class<?> oClass = o.getClass();
            // 获取该类的成员变量
            Field field = oClass.getDeclaredField(filedName);
            // 取消语言访问检查
            field.setAccessible(true);
            // 给变量赋值
            field.set(o, filedValue);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
