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>Create Date:2006-08-17</p> * */public class BeanUtil ...{ private static final Logger logger = Logger.getLogger(Logger.class); /** *//** *//** *//** * Bean 属性拷贝 * * @param dest * @param orig */ public static void copyProperties(Object dest,Object orig)...{ if(orig==null)...{ logger.error(" error: copy property error: orig is null"); } if(dest==null)......{ logger.error(" error: copy property error: dest is null"); } try ......{ copy(dest,orig); } catch (Exception e) ......{ logger.error(" error: copy property error: "+ e.toString()); } } /** *//** *//** *//** * 当orig的属性为 null 的就不拷贝到 dest * * @param dest * @param orig * @throws Exception */ private static void copy(Object dest,Object orig) throws Exception ...{ // 得到两个Class 的所有成员变量 Field[] destFields=dest.getClass().getDeclaredFields(); Field[] origFields=orig.getClass().getDeclaredFields(); // 设置访问权限 AccessibleObject.setAccessible(destFields, true); AccessibleObject.setAccessible(origFields, true); Object value=null; String name=null; String returnType=null; for (int i = 0; i < origFields.length; i++) ...{ name=origFields[i].getName(); returnType=origFields[i].getType().getName(); for (int j = 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; } } } } }