java来合并两个对象

merge两个对象,互补null,以新对象为主,代码如下


public static Object merge(Objectmaster, Object follow){

if(master ==null && follow ==null)

returnnull;

else if(master == null && null != follow)

returnfollow;

else if(null != master && null == follow)

returnmaster;

else{

Object[] objectNone =new Object[]{};

Class<?> c1 =master.getClass();

Field[] fields =c1.getDeclaredFields();

Method[] methods =c1.getDeclaredMethods();

for(Fieldf : fields){

String fName =f.getName();

Object o1 =null;

Object o2 =null;

for(Methodm : methods){

String mName =m.getName();

if(mName.contains("get") &&mName.equalsIgnoreCase("get"+fName)){

try {

o1 = m.invoke(master, objectNone);

o2 = m.invoke(follow, objectNone);

} catch (Exceptione) {

e.printStackTrace();

}

break;

}

}

o1 = getFitObject(o1,o2);

for (Methodm : methods) {

String mName =m.getName();

if (mName.contains("set") &&mName.equalsIgnoreCase("set" +fName)) {

try {

m.invoke(master,new Object[] { o1 });

} catch (Exceptione) {

e.printStackTrace();

}

break;

}

}

}

}

returnmaster;

}



private static Object getFitObject(Object o1, Object o2){

if(null == o1 && null == o2){

return o1;

}else if(null != o1 && null == o2){

return o1;

}else if(null == o1 && null != o2){

return o2;

}else{

String s1 = o1.toString();

String s2 = o2.toString();

if(s1.equals("0"))//过滤那些int long 

s1 = "";

if(StringUtils.isBlank(s1) && StringUtils.isBlank(s2)){

return o1;

}else if(StringUtils.isNotBlank(s1) && StringUtils.isBlank(s2)){

return o1;

}else if(StringUtils.isBlank(s1) && StringUtils.isNotBlank(s2)){

return o2;

}else{

return o1;

}

}

}


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、付费专栏及课程。

余额充值