这里将告诉您java反射获取父类和子类字段值、赋值,具体操作过程:java反射获取字段值、赋值
import org.springframework.util.ReflectionUtils;
import java.lang.reflect.Field;
import java.util.*;
public static void setValueByPropName(String tar, Object o, Object val, Class clazz) {
Field field = getFiled(tar, clazz);
field.setAccessible(true);
ReflectionUtils.setField(field, o, val);
}
public static Field getFiled(String tar, Class clazz) {
String error = null;
Field field = null;
while (clazz != null) {
try {
field = clazz.getDeclaredField(tar);
error = null;
break;
} catch (Exception e) {
clazz = clazz.getSuperclass();
error = e.getMessage();
}
}
if (error != null || field == null) {
throw new RuntimeException("无法获取源字段:" + tar);
}
return field;
}
public static Object getValueByPropName(String filedName, Object o, Class clazz) {
Field field = getFiled(filedName, clazz);
field.setAccessible(true);
return ReflectionUtils.getField(field, o);
}
调用方式:
// 获取id的值
Object var = getValueByPropName("id", a, clazz);// 赋值name -> lisi
setValueByPropName("name", a, "lisi", clazz);java反射获取父类和子类字段值、赋值就为您介绍到这里,感谢您关注懒咪学编程c.lanmit.com.
本文地址:https://c.lanmit.com/bianchengkaifa/Java/105281.html