当声明链式调用的方法时,通常它returns this
在该方法的末尾。
所以我声明:
public class Foo {
public Foo setTitle(String title){
...
return this;
}
}
And:
public class Bar extends Foo{
/* OTHER STUFF */
}
如果你打电话new Bar().setTitle("Test")
它返回一个Foo
的参考。
可以声明该方法以自动返回Bar
的参考无需重写 Bar 中的方法为了清晰、简洁和可维护性?
Thanks
为了清晰、简洁和可维护性,是否可以声明该方法以自动返回 Bar 的引用,而无需重写 Bar 中的方法?
不,你可以连接一些奇怪的泛型 -Foo<T extends Foo>
或类似的 - 但它不会很令人满意。
基本上,需要对“这种类型”有某种语言支持,其中该类型的唯一有效表达式是null
and this
。那不存在,所以你只能重写:
public Bar setTitle(String title) {
super.setTitle(title);
return this;
}
Or:
public Bar setTitle(String title) {
return (Bar) super.setTitle(title);
}
这只是继承最终成为一种痛苦的情况之一:(
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)