一、通过反射根据对象和字段名称获取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);
}
结果