@Test
void test11() throws Exception {
Emp emp = new Emp();
emp.setId("1");
emp.setName("张三");
emp.setSex("man");
User user = new User();
copy(emp,user);
System.out.println(emp);
System.out.println(user);
}
public void copy(Object o1,Object o2) throws IllegalAccessException {
Class<?> aClass = o1.getClass();
Class<?> aClass1 = o2.getClass();
Field[] o1ClassDeclaredFields = aClass.getDeclaredFields();
Field[] o2ClassDeclaredFields = aClass1.getDeclaredFields();
Map<String, List<Field>> collect = Arrays.stream(o1ClassDeclaredFields).collect(Collectors.groupingBy(s->s.getName().toLowerCase()));
for (Field o2ClassDeclaredField : o2ClassDeclaredFields) {
String username = o2ClassDeclaredField.getName();
List<Field> fields = collect.get(username.toLowerCase());
if (!CollectionUtils.isEmpty(fields)){
Field field = fields.get(0);
field.setAccessible(true);
o2ClassDeclaredField.setAccessible(true);
o2ClassDeclaredField.set(o2,field.get(o1));
}
}
}