"通过引用"编辑对象的好习惯?

11 java pass-by-reference pass-by-value

假设我有一个名为的类型Superstar.现在我希望有一个方法可以完成一些工作并编辑Superstar对象的某些属性.

以下是我如何实现这一点的两种方法.方式1将如下:

private Superstar editSuperstar(Superstar superstar){
    ....
    superstar.setEdited(true);
    return superstar;
}
...
superstar = editSuperstar(superstar);
Run Code Online (Sandbox Code Playgroud)

方式2将是这样的:

private void editSuperstar(Superstar superstar){
    ....
    superstar.setEdited(true);
}
...
editSuperstar(superstar);
Run Code Online (Sandbox Code Playgroud)

这两种可能的方式中的哪一种被认为是"最佳实践"?第一个,或第二个伪"引用"一个?

Rid*_*del 6

在您的情况下,第二种形式是可取的,因为您直接更改了一个超级明星属性(edited).但是,如果你有一个方法使用超级明星对象并返回它的更新版本(不更改初始对象),第一个表单将有利于我.

最后,由于这两个示例都只使用Superstar对象,因此它们应该是Superstar类的成员方法.

  • @Jon 你为什么这么说?这里没有任何东西支持这个说法,不是吗? (2认同)