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