Java merges property values of objects

Above code:

    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 2021/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;
    }

You can see the following is the result after the merge is complete:
insert image description here

Guess you like

Origin blog.csdn.net/qq_39486119/article/details/120266330