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 throw e;
42 }
43 field.setAccessible(true);
44 field.set(destinationBean, field.get(sourceBean));
45 }
46 } catch (Exception e) {
47
48 }
49 }
50 parent = parent.getSuperclass();
51 }
52 }
53
54 }