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);
}
}
}
}