我有一个初学者的问题。我搜索了很多答案,但似乎无法找到确切的答案,所以也许有经验丰富的开发人员可以帮我解决这个问题。
所以,让我们说你在代码中有以下情况(这是情况的简化版):
SomeObject a1 = new SomeObject();
a1 = someMethod(a1);
public SomeObject someMethod(SomeObject a1) {
a1.changeVariable();
return a1;
}
现在我从几个人那里听说,将对象的引用传递给方法并捕获返回值是不好的编码实践。不幸的是,没有人可以向我解释为什么它是错误的编码实践,而我对原因的搜索没有任何结果。有人可以解释为什么这样做是不好的做法?我想不出这样的情况会出现问题。
在此先感谢您,好心人已经无数次帮助我找到其他人的答案,这是我第一次真正需要发帖提问:)
答案 0 :(得分:5)
在您展示的情景中,没有明显的好处。但是,作为一种模式,它可以在我的经验中有用 - 特别是如果该方法执行验证。
番石榴的Preconditions.checkNotNull
方法就是一个很好的例子。这意味着我可以编写这样的代码:
public class Player {
private final String name;
public Player(String name) {
this.name = Preconditions.checkNotNull(name);
}
}
...而不必分割任务和验证。它还允许验证作为另一个呼叫的一部分存在,例如,到另一个构造函数:
super(Preconditions.checkNotNull(name));