两个对象的属性赋值
public class BeanCopyUtil { private static final Log log = LogFactory.getLog("FILE-ERROR"); public static void copyField(Object targetObj, Object orginObj){ if(targetObj == null || orginObj == null){ log.error("BeanCopyUtil 属性拷贝的工具类出现null.[targetObj:"+targetObj+"]-[orginObj:"+orginObj+"]"); return; } Class targetClass = targetObj.getClass(); // Field[] orgFields = orginObj.getClass().getFields(); // if(orgFields.length ==0){ Field[] orgFields = orginObj.getClass().getDeclaredFields(); // } for (Field orgField : orgFields) { Field targetField; try { targetField = targetClass.getDeclaredField(orgField.getName()); } catch (Exception e) { continue; } if (targetField != null) { targetField.setAccessible(true); orgField.setAccessible(true); try { targetField.set(targetObj, orgField.get(orginObj)); } catch (Exception e) { continue;//当出现NoSuchFieldException异常时,直接下一次循环,这样就将origin中有的filed而target中没有的filed忽略 } finally { targetField.setAccessible(false); orgField.setAccessible(false); } } } }