我想写一个JavaBean的值复制,用于对JavaBean比较覆盖其属性值;
现在基本数据类型的能够正常复制成功,但关联的对象属性就不行了,请问怎么修改?
public static void copy(Object dest ,Object src){ if(dest.getClass()==src.getClass()){ Field[] destField = dest.getClass().getDeclaredFields(); Field[] srcField = src.getClass().getDeclaredFields(); for(int i=0;i<destField.length;i++){ String destFieldName = destField[i].getName(); String destFieldType = destField[i].getGenericType().toString(); for(int n=0;n<srcField.length;n++){ String srcFieldName = srcField[n].getName(); String srcFieldType = srcField[n].getGenericType().toString(); if(destFieldName.equals(srcFieldName)&&destFieldType.equals(srcFieldType)){ destField[i].setAccessible(true); srcField[n].setAccessible(true); Object srcobj = null; try { srcobj = srcField[n].get(src); if(srcobj!=null){ srcField[n].set(dest, srcobj); } } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } } } } }
|