JAVA两个对象属性合并

import java.lang.reflect.Field;
 
public class CombineBeans {
 
	/**
	 * @Title: combineSydwCore
	 * @Description: 该方法是用于相同对象不同属性值的合并,如果两个相同对象中同一属性都有值,
	 *               那么sourceBean中的值会覆盖tagetBean重点的值
	 * @author: WangLongFei
	 * @date: 2017年12月26日 下午1:53:19
	 * @param sourceBean
	 *            被提取的对象bean
	 * @param targetBean
	 *            用于合并的对象bean
	 * @return targetBean 合并后的对象
	 * @return: Object
	 */
	@SuppressWarnings("unused")
	private Object combineSydwCore(Object sourceBean, Object targetBean) {
		Class sourceBeanClass = sourceBean.getClass();
		Class targetBeanClass = targetBean.getClass();
 
		Field[] sourceFields = sourceBeanClass.getDeclaredFields();
		Field[] targetFields = sourceBeanClass.getDeclaredFields();
		for (int i = 0; i < sourceFields.length; i++) {
			Field sourceField = sourceFields[i];
			Field targetField = targetFields[i];
			sourceField.setAccessible(true);
			targetField.setAccessible(true);
			try {
				if (!(sourceField.get(sourceBean) == null)) {
					targetField.set(targetBean, sourceField.get(sourceBean));
				}
			} catch (IllegalArgumentException | IllegalAccessException e) {
				e.printStackTrace();
			}
		}
		return targetBean;
	}
 
	// 测试 combineBeans方法
	public static void main(String[] args) {
		Student sourceModel = new Student(); // 第一个对象
		Student targetModel = new Student(); // 第二个model对象
 
		sourceModel.setSex("1");
		sourceModel.setcName("张三");
 
		targetModel.setSex("2");
		targetModel.setcName("李四");
		targetModel.setCardName("身份证");
		targetModel.setCardNumber("222222222222222222222");
 
		CombineBeans test = new CombineBeans();
		test.combineSydwCore(sourceModel, targetModel);
	}
}
 
 
public class Student {
	private String sex;
	private String cName;
	private String cardName;
	private String cardNumber;
 
	public String getSex() {
		return sex;
	}
 
	public void setSex(String sex) {
		this.sex = sex;
	}
 
	public String getcName() {
		return cName;
	}
 
	public void setcName(String cName) {
		this.cName = cName;
	}
 
	public String getCardName() {
		return cardName;
	}
 
	public void setCardName(String cardName) {
		this.cardName = cardName;
	}
 
	public String getCardNumber() {
		return cardNumber;
	}
 
	public void setCardNumber(String cardNumber) {
		this.cardNumber = cardNumber;
	}
 
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,如果你想将两个相同的对象合并,你可以考虑实现一个合并方法。首先,你需要确保这两个对象的类型相同。然后,你可以在一个对象中添加另一个对象属性或者将两个对象属性进行合并。 以下是一个示例代码: ```java public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public void merge(Person otherPerson) { // 合并name属性 if (otherPerson.name != null && !otherPerson.name.isEmpty()) { this.name = otherPerson.name; } // 合并age属性 if (otherPerson.age > 0) { this.age = otherPerson.age; } } // Getter和Setter方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } ``` 在上面的示例代码中,我们创建了一个名为Person的类,它包含了两个属性:name和age。我们还添加了一个名为merge的方法,该方法接受另一个Person对象作为参数,用于将两个对象进行合并。在merge方法中,我们首先检查另一个对象的name属性是否为空,如果不为空,则将其设置为当前对象的name属性。然后,我们检查另一个对象的age属性是否大于0,如果是,则将其设置为当前对象的age属性。 现在,我们可以使用merge方法将两个相同的Person对象进行合并。假设我们有两个Person对象p1和p2,它们的属性相同,我们可以这样合并它们: ```java p1.merge(p2); ``` 这将把p2的属性合并到p1中。请注意,如果你想要对两个对象进行完全的合并,你需要确保它们的属性都是相同的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值