我想您已经有了解决方案,因为自您提出要求以来已经发生了很多时间。但是,它未标记为已解决,也许我可以帮助其他用户。
你有没有定义的一个子类试过
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);



