JavaBean的值复制工具

我想写一个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();
}

}
}
}
}
}

已经有了apache的 property copy包

apache的 property copy包这个会用源对象将目标对象的属性全部覆盖,
我需要的是源对象中那些值为空的属性不用覆盖目标对象!

在遍历hibernate bean的时候,如何通过反射获取关联对象的属性。
能通过Field获取bean的属性,但是获取关联对象的属性?