调用方法并传递对象引用并使用相同的引用捕获返回

时间:2014-12-12 09:02:40

标签: java methods parameter-passing return-value

我有一个初学者的问题。我搜索了很多答案,但似乎无法找到确切的答案,所以也许有经验丰富的开发人员可以帮我解决这个问题。

所以,让我们说你在代码中有以下情况(这是情况的简化版):

SomeObject a1 = new SomeObject();
a1 = someMethod(a1);

public SomeObject someMethod(SomeObject a1) {
 a1.changeVariable();
return a1;
}

现在我从几个人那里听说,将对象的引用传递给方法并捕获返回值是不好的编码实践。不幸的是,没有人可以向我解释为什么它是错误的编码实践,而我对原因的搜索没有任何结果。有人可以解释为什么这样做是不好的做法?我想不出这样的情况会出现问题。

在此先感谢您,好心人已经无数次帮助我找到其他人的答案,这是我第一次真正需要发帖提问:)

1 个答案:

答案 0 :(得分:5)

在您展示的情景中,没有明显的好处。但是,作为一种模式,它可以在我的经验中有用 - 特别是如果该方法执行验证。

番石榴的Preconditions.checkNotNull方法就是一个很好的例子。这意味着我可以编写这样的代码:

public class Player {
    private final String name;

    public Player(String name) {
        this.name = Preconditions.checkNotNull(name);
    }
}

...而不必分割任务和验证。它还允许验证作为另一个呼叫的一部分存在,例如,到另一个构造函数:

super(Preconditions.checkNotNull(name));