为了将非null属性从对象复制到另一个对象的助手?(Java)

见下课

public class Parent {

private String name;

private int age;

private Date birthDate;

// getters and setters

}

假设我创建了一个父对象,如下所示

Parent parent = new Parent();

parent.setName("A meaningful name");

parent.setAge(20);

根据上面的代码注意,birthDate属性为null。现在我只想将非null属性从父对象复制到另一个对象。就像是

SomeHelper.copyNonNullProperties(parent, anotherParent);

我需要它,因为我想更新anotherParent对象而不用null值覆盖其非null值。

你知道这样的帮手吗?

我是否接受最少的代码作为答案,是否不介意使用助手

问候,

回答:

我想您已经有了解决方案,因为自您提出要求以来已经发生了很多时间。但是,它未标记为已解决,也许我可以帮助其他用户。

你有没有定义的一个子类试过BeanUtilsBean了的org.commons.beanutils包?实际上,BeanUtils使用此类,因此这是dfa提出的解决方案的改进。

查看该类的源代码,我认为您可以copyProperty通过检查null值来覆盖该方法,如果value为null则不执行任何操作。

像这样的东西:

package foo.bar.copy;

import java.lang.reflect.InvocationTargetException;

import org.apache.commons.beanutils.BeanUtilsBean;

public class NullAwareBeanUtilsBean extends BeanUtilsBean{

@Override

public void copyProperty(Object dest, String name, Object value)

throws IllegalAccessException, InvocationTargetException {

if(value==null)return;

super.copyProperty(dest, name, value);

}

}

然后,您只需实例化a NullAwareBeanUtilsBean并使用它来复制您的bean,例如:

BeanUtilsBean notNull=new NullAwareBeanUtilsBean();

notNull.copyProperties(dest, orig);

以上是 为了将非null属性从对象复制到另一个对象的助手?(Java) 的全部内容, 来源链接: utcz.com/qa/425048.html

回到顶部