我有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] 删除。
我来说两句