Java 反射实现对象拷贝_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java 反射实现对象拷贝

Java 反射实现对象拷贝

 2014/6/5 18:54:49  TRAMP_ZZY  程序员俱乐部  我要评论(0)
  • 摘要:publicclassBeanCopyUtils{/****copy:<br/>*复制一个对象到另外一个**@authorzhangzhaoyu*@paramobject*@return*@throwsException*/publicstaticvoidcopy(Objectorg,Objectdes)throwsException{Class<?>orgClassType=org.getClass();Class<?>desClassType=des
  • 标签:实现 Java 反射
class="java" name="code">
public class BeanCopyUtils {
	/**
	 * 
	 * copy:<br />
	 * 复制一个对象到另外一个
	 *
	 * @author zhangzhaoyu
	 * @param object
	 * @return
	 * @throws Exception
	 */
	public static void copy(Object org, Object des) throws Exception {
		
		Class<?> orgClassType = org.getClass();
		Class<?> desClassType = des.getClass();
		
		//Object objectCopy = desClassType.getConstructor(new Class[]{}).newInstance(new Object[]{});
		Field []fields = orgClassType.getDeclaredFields();
		
		for (Field field : fields) {
			String filedName = field.getName();
			String firstLetter = filedName.substring(0, 1).toUpperCase();
			String getMethodName = "get" + firstLetter + filedName.substring(1);
			String setMethodName = "set" + firstLetter + filedName.substring(1);
			
			Method getMethod = orgClassType.getMethod(getMethodName, new Class[]{});
			Method setMethod = desClassType.getMethod(setMethodName, new Class[]{field.getType()});
			
			if (getMethod != null) {
				Object value = getMethod.invoke(org, new Object[]{});
				if (setMethod != null) {
					setMethod.invoke(des, new Object[]{value});
				}
			}
		}
	}
}
上一篇: 天文学家发现第一颗Thorne–?ytkow天体 下一篇: 没有下一篇了!
发表评论
用户名: 匿名