/** * Copy properties of orig to dest * Exception the Entity and Collection Type * @param dest * @param orig * @return the dest bean */ public static Object copyProperties(Object dest, Object orig) { if (dest == null || orig == null ) { return dest; }
PropertyDescriptor[] destDesc = PropertyUtils.getPropertyDescriptors(dest); try { for ( int i = 0 ; i < destDesc.length; i ++ ) { Class destType = destDesc[i].getPropertyType(); Class origType = PropertyUtils.getPropertyType(orig, destDesc[i].getName()); if (destType != null && destType.equals(origType) && ! destType.equals(Class. class )) { if ( ! Collection. class .isAssignableFrom(origType)) { try { Object value = PropertyUtils.getProperty(orig, destDesc[i].getName()); PropertyUtils.setProperty(dest, destDesc[i].getName(), value); } catch (Exception ex) { } } } }
/** * Copy properties of orig to dest * Exception the Entity and Collection Type * @param dest * @param orig * @param ignores 例如:vo.setUserName copy po.setUserName,应该写UserName * @return the dest bean */ public static Object copyProperties(Object dest, Object orig, String[] ignores) { if (dest == null || orig == null ) { return dest; }
PropertyDescriptor[] destDesc = PropertyUtils.getPropertyDescriptors(dest); try { for ( int i = 0 ; i < destDesc.length; i ++ ) { if (contains(ignores, destDesc[i].getName())) { continue ; }
Class destType = destDesc[i].getPropertyType(); Class origType = PropertyUtils.getPropertyType(orig, destDesc[i].getName()); if (destType != null && destType.equals(origType) && ! destType.equals(Class. class )) { if ( ! Collection. class .isAssignableFrom(origType)) { Object value = PropertyUtils.getProperty(orig, destDesc[i].getName()); PropertyUtils.setProperty(dest, destDesc[i].getName(), value); } } }