不是昨天才开始学Java,而是突然想void
,如果可以return,为什么还要用方法this
呢?通过这种方式,我们可以链接对象上的方法调用并使代码更具可读性(我知道这种方法已经越来越流行,但主要用于不可变对象,让我们忘记Java Beans约定)。我认为唯一void
需要的情况是静态方法。
问问题
713 次
1 回答
14
大概你会接受一些方法需要告诉你一些东西——某种返回值。我们会“返回我们想要返回的值,除非我们实际上不想返回任何东西,在这种情况下我们会返回this
,除非它是一个静态方法,在这种情况下我们会返回void
”,这似乎是人为和迟钝的。
怎么样:
- 如果适合退货,那就退货
- 如果不是,那么不要
- (对于“流利的”API 真正有意义的情况有一些回旋余地)
另外:认为继承;如果我有一个虚拟方法Foo()
,那么返回类型必须是Foo
声明类型:
public virtual SomeType Foo() {...}
现在想象我的子类SomeType
,Bar : SomeType
并有一个实例Bar
:
Bar obj = new Bar();
obj.Foo().SomeOtherMethodOnBar(); // ERROR hey, where did my Bar go!?!?!
多态性不尊重流畅的 API。
作为最后的想法:当你实际上不想链接方法时,想想所有的“pop”......
于 2013-05-14T10:15:09.353 回答