java 类 方法继承_java – 在方法重写中返回继承的类而不是超类
我有一個看起來像這樣的類結構:
class Parent {
public Parent(int property) { /* use property */}
}
class Son extends Parent {
public Son(int parentProperty, String sonProperty) {
super(parentProperty);
/* use son property */
}
}
我想為這兩個類創建構建器,以便:
class ParentBuilder {
protected int parentProperty;
public ParentBuilder parentProperty(int parentPropertyValue) {
parentPropertyValue = parentPropertyValue;
return this;
}
public Parent build() {
return new Parent(parentProperty);
}
}
class SonBuilder extends ParentBuilder {
private String sonProperty;
public SonBuilder sonProperty(String sonProperty) {
this.sonProperty = sonProperty;
return this;
}
@Override
public Son build() {
return new Son(parentProperty, sonProperty);
}
}
但這會導致以下問題:
SonBuilder sonBuilder = new SonBuilder();
sonBuilder.sonProperty("aString").build(); // this works and creates Son
sonBuilder.sonProperty("aString").parentProperty(1).build(); // this works and creates Parent instead of Son
sonBuilder.parentProperty(1).sonProperty("aString").build(); // this doesn't work
我知道我在挑剔,這可以通過不返回這個來解決(即沒有方法鏈接),但我想知道是否有一個優雅的解決方案.
編輯
似乎“優雅”這個詞有點混亂.
“優雅”是指一種允許方法鏈接而不涉及鑄造的解決方案.
總結
以上是生活随笔為你收集整理的java 类 方法继承_java – 在方法重写中返回继承的类而不是超类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java8 ie_Java8语法糖之La
- 下一篇: lg手机历史机型_华为后,又一中国芯崛起