【发布时间】:2010-10-09 13:33:10
【问题描述】:
目前我只能想到三个很好的理由返回 this 在(公共)方法中,即:
-
(mmyers) 在实现 fluent 接口 时,例如
public class X { ... public X enableValidation() { setValidation(true); return this; } ... } -
(Jon Skeet) 用于身份转换,例如
public class X { ... public X toX() { return this; } ... } -
(Dave Ray) 在不可变对象上实现
clone()或copy()方法,例如@Immutable public class X { ... public X copy() { return this; } ... }
在面向对象语言中是否还有其他有用的场景可以让您从方法中返回this 或self?
【问题讨论】:
-
哇!我不仅被引用了,我在 Jon Skeet 上面被引用了! (虽然我的名字拼错了,所以我猜它是均匀的。;))
-
作为对我们谈话的回应,我添加了一个我正在描述的对象结构示例。
-
@eljenso:从我们之前的谈话来看,这有意义吗?
-
@eljenso:我认为是的..
-
@mmyers:对于拼写错误,我很抱歉,我最后一次编辑很匆忙,结果马虎了。
标签: language-agnostic oop