importjava.lang.reflect.Field;
importorg.apache.log4j.Logger;
/***//**
*<p>Title:</p>
*
*<p>Description:</p>
*
*<p>Copyright:Copyright(c)2006</p>
*
*<p>Company:</p>
*
*<p>Author:一個人的日子</p>
*
*<p>Version:1.0</p>
*
*<p>CreateDate:2006-08-17</p>
*
*/
publicclassBeanUtil...{
privatestaticfinalLoggerlogger=Logger.getLogger(Logger.class);
/***//***//***//**
*Bean屬性拷貝
*
*@paramdest
*@paramorig
*/
publicstaticvoidcopyProperties(Objectdest,Objectorig)...{
if(orig==null)...{
logger.error("error:copypropertyerror:origisnull");
}
if(dest==null)......{
logger.error("error:copypropertyerror:destisnull");
}
try......{
copy(dest,orig);
}catch(Exceptione)......{
logger.error("error:copypropertyerror:"+e.toString());
}
}
/***//***//***//**
*當orig的屬性爲null的就不拷貝到dest
*
*@paramdest
*@paramorig
*@throwsException
*/
privatestaticvoidcopy(Objectdest,Objectorig)throwsException...{
//得到兩個Class的所有成員變量
Field[]destFields=dest.getClass().getDeclaredFields();
Field[]origFields=orig.getClass().getDeclaredFields();
//設置訪問權限
AccessibleObject.setAccessible(destFields,true);
AccessibleObject.setAccessible(origFields,true);
Objectvalue=null;
Stringname=null;
StringreturnType=null;
for(inti=0;i<origFields.length;i++)...{
name=origFields[i].getName();
returnType=origFields[i].getType().getName();
for(intj=0;j<destFields.length;j++)...{
if(name.equals(destFields[j].getName())&&returnType.equals(destFields[j].getType().getName()))...{
value=origFields[i].get(orig);
if(value!=null)......{
destFields[j].set(dest,value);
}
break;
}
}
}
}
}