当声明链式调用的方法时,通常returns this在方法结束时.
所以我宣布:
public class Foo {
public Foo setTitle(String title){
...
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
和:
public class Bar extends Foo{
/* OTHER STUFF */
}
Run Code Online (Sandbox Code Playgroud)
如果你打电话,new Bar().setTitle("Test")它会返回一个Foo参考.
为了清晰,简洁和可维护性,是否可以声明方法以自动返回Bar引用而不覆盖Bar中的方法?
谢谢
为了清晰,简洁和可维护性,是否可以声明方法以自动返回Bar的引用而不覆盖Bar中的方法?
不,你可以联系一些奇怪的仿制药 - Foo<T extends Foo>或类似的 - 但它不会很令人满意.
基本上需要为"this type"提供一些语言支持,其中该类型的唯一有效表达式是null和this.那不存在,所以你留下了压倒一切:
public Bar setTitle(String title) {
super.setTitle(title);
return this;
}
Run Code Online (Sandbox Code Playgroud)
要么:
public Bar setTitle(String title) {
return (Bar) super.setTitle(title);
}
Run Code Online (Sandbox Code Playgroud)
这只是继承最终成为痛苦的案例之一:(
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |