对象反射赋值
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/83053917
在不确定对象字段及内容的前提下,为对象赋值的解决方案通常是反射赋值
更多精彩
- 更多技术博客,请移步 asing1elife’s blog
实现方式
// 获取当前会员对象
Class<MemberDTO> member = (Class<MemberDTO>) super.getMember().getClass();
// 获取所有字段
Field[] fileds = member.getDeclaredFields();
// 遍历字段找到与当前修改字段相符合的字段
for (Field field : fileds) {
// ** 获取私有字段的操作权限
field.setAccessible(true);
if (field.getName().equals(name)) {
// 找到字段对应 set 方法
PropertyDescriptor pd = new PropertyDescriptor(field.getName(), member);
Method method = pd.getWriteMethod();
// 传入当前对象,并赋值
method.invoke(super.getMember(), value);
break;
}
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。