Bean对象工具类

166 阅读1分钟

一、通过反射根据对象和字段名称获取get方法返回值

1、工具类 BeanUtils.java

 /**
 * 匹配getter方法的前缀
 */
private static final String GET_PREFIX = "get";

/**
 * 匹配setter方法的前缀
 */
private static final String SET_PREFIX = "set";

/**
 * 根据对象和字段名称获取get方法返回值
 *
 * @param t    对象
 * @param name 字段名称
 * @param <T>
 * @return
 */
public static <T> String getMethodValue(T t, String name) {
    String methodName = GET_PREFIX + name.substring(0, 1).toUpperCase() + name.substring(1);
    String value = "";
    try {
        value = String.valueOf(t.getClass().getMethod(methodName).invoke(t));
    } catch (Exception e) {
        e.printStackTrace();
    }
    return value;
}

2、引用实体 User.java


/**
 * 用户实体
 *
 * @author yyb
 * @create 2020/5/6
 */
public class User {
 
    /**
     * id
     */
    private String id;
    /**
     * 姓名
     */
    private String name;
    /**
     * 年龄
     */
    private Integer age;
 
    public String getId() {
        return id;
    }
 
    public void setId(String id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public Integer getAge() {
        return age;
    }
 
    public void setAge(Integer age) {
        this.age = age;
    }
 
    public User(String id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
}

3、功能测试

public static void main(String[] args) {
    //根据对象和字段名称获取get方法返回值
    User user = new User("1", "张三", 18);
    String nameVale = getMethodValue(user, "name");
    System.out.printf("name:" + nameVale);

}

结果

image.png