1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.ibatis.reflection.property;
17
18 import java.lang.reflect.Field;
19
20 import org.apache.ibatis.reflection.Reflector;
21
22
23
24
25 public final class PropertyCopier {
26
27 private PropertyCopier() {
28
29 }
30
31 public static void copyBeanProperties(Class<?> type, Object sourceBean, Object destinationBean) {
32 Class<?> parent = type;
33 while (parent != null) {
34 final Field[] fields = parent.getDeclaredFields();
35 for (Field field : fields) {
36 try {
37 try {
38 field.set(destinationBean, field.get(sourceBean));
39 } catch (IllegalAccessException e) {
40 if (Reflector.canControlMemberAccessible()) {
41 field.setAccessible(true);
42 field.set(destinationBean, field.get(sourceBean));
43 } else {
44 throw e;
45 }
46 }
47 } catch (Exception e) {
48
49 }
50 }
51 parent = parent.getSuperclass();
52 }
53 }
54
55 }