牛骨文教育服务平台(让学习变的简单)
博文笔记

对象反射赋值

创建时间:2018-10-15 投稿人: 浏览次数:256
版权声明:本文首发 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;
	}
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。