JavaBean的值复制工具

10-09-05 penweizgx
我想写一个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();
						}
						
					  }
				}
			}
		}
	}
<p>

1
banq
2010-09-05 08:58
已经有了apache的 property copy包

penweizgx
2010-09-05 12:00
apache的 property copy包这个会用源对象将目标对象的属性全部覆盖,

我需要的是源对象中那些值为空的属性不用覆盖目标对象!

penweizgx
2010-09-05 13:43
在遍历hibernate bean的时候,如何通过反射获取关联对象的属性。

能通过Field获取bean的属性,但是获取关联对象的属性?

猜你喜欢