返回此内容有什么问题?
在我工作的公司,有一个文档描述了我们应该在Java中坚持的良好实践。其中之一是避免返回的方法,例如在:this
class Properties {
public Properties add(String k, String v) {
//store (k,v) somewhere
return this;
}
}
我会有这样一个类,这样我就可以写:
properties.add("name", "john").add("role","swd"). ...
我看过很多次这样的成语,就像在里面一样,没有发现任何错误。StringBuilder
他们的论点是:
...可能是同步问题的根源,也可能是对目标对象状态的期望失败的根源。
我想不出这是事实的情况,你们中的任何一个人能给我举个例子吗?
编辑该文档没有指定任何有关可变性的内容,因此我没有看到链接调用和执行以下操作之间的差异:
properties.add("name", "john");
properties.add("role", "swd");
我会尝试与发起人取得联系,但我想在上膛枪的情况下做到这一点,这就是我发布这个问题的原因。
解决:我和其中一位作者交谈,他的初衷显然是避免释放尚未准备好的对象,就像在Builder模式中一样,并解释说,如果在调用之间发生上下文切换,该对象可能处于无效状态。我认为这与返回无关,因为您可能会犯同样的错误,购买逐个调用方法,并且与正确同步构建过程有更多关系。他承认该文件可能更明确,并将很快对其进行修改。胜利是我的/我们的!this