import java.lang.reflect.AccessibleObject; import java.lang.reflect.Field; import org.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>**/ public class BeanUtil ... {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;}}}}}