使用 Void 或返回类型方法将值设置为对象

帕万

我有Employee课,我正在尝试为员工name属性设置一个值

public class Employee {
private String name;
private String id;
// setters and getters
}

我有两个选择:通过使用void或使用返回类型。

public class EmpClient {
    
    public static void main(String[] args) {
        Employee emp = new Employee();
        EmpClient emp_client = new EmpClient();
        emp_client.setNameToEmployee(emp);
        System.out.println(emp.getName());
    
    }
    
    public void setNameUsingVoid(Employee emp) {
        emp.setName("Mark");
    }
    
    public Employee setNameToEmployee(Employee emp) {
        emp.setName("Taylor");
    
        return emp;
    }
}

这是我的代码,通过这两种方法,它都有效。
请让我知道什么是首选和更有效的方法?使用每种方法的优缺点是什么,在什么情况下应该使用它们?

飞博

这取决于您希望该方法做什么。对于大多数情况,setNameUsingVoid()方法是合适的。您想为员工分配一个名字,而这种方法可以实现这一点。
相反,当您在 main 方法中有此语句时。

setNameToEmployee(emp);

完成了所需的分配,此外,还返回了一个引用。在这里您没有使用返回值,因此这只是不必要的额外工作。因此,如果您打算以上述方式使用该语句,请改用 setNameUsingVoid()。
注意:根据 Java 语言规范,尽管未使用返回值,但上述语句是有效语句。有关此类声明有效性的更多信息,
如果您要setNameToEmployee()以这种方式使用

Employee e1 = setNameToEmployee(emp);

您应该选择使用此功能而不是其他功能。然而,在这个特定的用例中,该语句完全没有意义,因为您正在空闲地制作Employee对象的第二个副本总结:
在这种情况下(或在返回相同内容时传递引用的任何情况),最好使用setNameUsingVoid(),因为很难想到setNameToEmployee()可能实际上有益的情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章