上代码:
public static void main(String[] args) throws Exception {User user1 = new User();user1.setPhone("1111111111");user1.setUsername("1111111111");user1.setHead("1111111111");User user2 = new User();user2.setEmail("2222222222");user2.setPassword("2222222222");user2.setCreateUser("2222222222");User user = mergeObject(user1, user2);System.out.println(user);}
/*** description 合并对象(该方法是用于相同对象不同属性值的合并)** @author yanzy* @version 1.0* @date /9/13 11:09*/public static User mergeObject(User user1, User user2) throws Exception {Class user1Class = user1.getClass();Class user2Class = user2.getClass();Field[] user1Fields = user1Class.getDeclaredFields();Field[] user2Fields = user2Class.getDeclaredFields();for (int i = 0; i < user1Fields.length; i++) {Field sourceField = user1Fields[i];if (Modifier.isStatic(sourceField.getModifiers())) {continue;}Field targetField = user2Fields[i];if (Modifier.isStatic(targetField.getModifiers())) {continue;}sourceField.setAccessible(true);targetField.setAccessible(true);if (sourceField.get(user1) != null) {targetField.set(user2, sourceField.get(user1));}}return user2;}
可以看到下面是合并完成后的结果: