看如下代码,从代码可读性和内存管理来讲,应该选用哪种合理?

private String test(){
        User user = new User();
        //方法一
        assignment_One(user, 30);
        System.out.println(JSON.toJSON(user));

        //方法二
        user = assignment_Two(user, 30);
        System.out.println(JSON.toJSON(user));
    }

    private void assignment_One(User user, int age){
        //内部逻辑处理
        user.setUserAge(age);
        user.setUserName("我");
        if(age > 30){
            user.setMsg("年龄比较大");
        }else{
            user.setMsg("年龄正好");
        }
    }

    private User assignment_Two(User user,int age){
        //内部逻辑处理
        User newUser = new User();
        newUser.setUserName("我");
        newUser.setUserAge(age);
        if(age > 30){
            newUser.setMsg("年龄比较大");
        }else{
            newUser.setMsg("年龄正好");
        }
        return newUser;
    }

第二种方案较好,另外第二方案的入参不再需要user

第二种较好,可读性较好,容易移植和重用

你的问题在于,你到底是通过修改传入的User来赋值还是返回值。assignment_Two写得驴头不对马嘴。

要么是
private void assignment_Two(User user,int age){
        //内部逻辑处理
        user.setUserName("我");
        user.setUserAge(age);
        if(age > 30){
            user.setMsg("年龄比较大");
        }else{
            user.setMsg("年龄正好");
        }
    }
        那么
        User user = new User();
        //方法一
        assignment_One(user, 30);
要么是
private User assignment_Two(int age){
        //内部逻辑处理
        User newUser = new User();
        newUser.setUserName("我");
        newUser.setUserAge(age);
        if(age > 30){
            newUser.setMsg("年龄比较大");
        }else{
            newUser.setMsg("年龄正好");
        }
        return newUser;
    }
        那么
        //去掉 User user = new User();
        User user =assignment_Two(30);