java实体对象合并方法

在实际的开发工作中java对象合并还是比较实用的的一个功能,尤其是在牵扯到数据的更新和业务对象之间的转换的时候更是必要。在这里给大家分享一下我常用的合并对象的方法。

/**
	 * 合并对象
	 * 
	 * @param sourceBean 数据源对象
	 * @param targetBean 需要得到的对象
	 * @return
	 */
	private static Object mergerData(Object sourceBean, Object targetBean) {
		Field[] sourceFields = sourceBean.getClass().getDeclaredFields();
		Field[] targetFields = targetBean.getClass().getDeclaredFields();
		try {
			for (int i = 0; i < sourceFields.length; i++) {
				Field sourceField = sourceFields[i];
				//这里遍历主要是为了适应双方对象属性顺序不一致的情况
				for (int j = 0; j < targetFields.length; j++) {
					Field targetField = targetFields[j];
					if (sourceField.getName().equals(targetField.getName())) {
						sourceField.setAccessible(true);
						targetField.setAccessible(true);
						if (!(sourceField.get(sourceBean) == null)) {
							targetField.set(targetBean, sourceField.get(sourceBean));
						}
					}
				}
			}
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		}
		return targetBean;
	}

这个方法的逻辑就是以数据源对象的值为主进行更新的,对双方对象的顺序和数量没有要求,但是两个属性的名称必须一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值