데이터 원본 복사 Util

1669 단어 자바기업 응용
가끔 우 리 는 개발 과정 에서 한 대상 의 데 이 터 를 다른 대상 에 복사 하 는 것 을 자주 볼 수 있다.예 를 들 어 한 대상 의 데 이 터 를 하나의 역사 기록 표 에 복사 해 야 한다.만약 에 우리 가 set 를 사용 하면 get 이 비교적 번거롭다.이런 현재 의 전 제 는 자바 빈 실체 안의 속성 이 똑 같 아야 복사 할 수 있다 는 것 이다.이렇게 하면 우리 가 개발 과정 에서 의 데이터 조작 시간 을 크게 향상 시 킬 수 있다.

import java.lang.reflect.Method;
/**
 *      util
 * @author weidetian
 * @version 2013-12-16
 */
public class BeanUtil {
	public static void copyProperties(Object source, Object dest)
			throws Exception {
		Method[] sourceMethod = source.getClass().getMethods();
		Method[] destMethod = dest.getClass().getMethods();
		String sourceMethodName, methodFix1, destMethodName2, methodFix2;
		for (int i = 0; i < sourceMethod.length; i++) {
			sourceMethodName = sourceMethod[i].getName();
			methodFix1 = sourceMethodName.substring(3,
					sourceMethodName.length());
			if (sourceMethodName.startsWith("get")) {
				for (int j = 0; j < destMethod.length; j++) {
					destMethodName2 = destMethod[j].getName();
					methodFix2 = destMethodName2.substring(3,
							destMethodName2.length());
					if (destMethodName2.startsWith("set")) {
						if (methodFix2.equals(methodFix1)) {
							Object[] objs2 = new Object[1];
							objs2[0] = sourceMethod[i].invoke(source,
									new Object[0]);
							//  copy     
							if (null != objs2[0]) {
								destMethod[j].invoke(dest, objs2);
							}
							continue;
						}
					}
				}
			}
		}
	}


}


좋은 웹페이지 즐겨찾기