



























import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; class Beanutils{ //merge two bean by discovering differences public static <M> void merge(M target, M destination) throws Exception { BeanInfo beanInfo = Introspector.getBeanInfo(target.getClass()); // Iterate over all the attributes for (PropertyDescriptor descriptor : beanInfo.getPropertyDescriptors()) { // Only copy writable attributes if (descriptor.getWriteMethod() != null) { Object originalValue = descriptor.getReadMethod() .invoke(target); // Only copy values values where the destination values is null if (originalValue == null) { Object defaultValue = descriptor.getReadMethod().invoke( destination); descriptor.getWriteMethod().invoke(target, defaultValue); } } } } }
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。