对于示例Rectangle类,Eclipse中使用代码模板的自动生成的构造函数是
public Rectangle (double width, double side) {
this.width = width;
this.height = height;
}
然而,假设已经创建了setter,我希望它(不必自己更改)
public Rectangle (double width, double side) {
setWidth(width);
setHeight(height);
}
任何帮助表示赞赏!
答案 0 :(得分:1)
从构造函数调用ovevrridable方法是一种反模式,这就是eclipse不支持它的原因。作为超类构造函数的原因在子类构造函数之前运行,因此在子类构造函数运行之前将调用子类中的重写方法。如果重写方法依赖于子类构造函数执行的任何初始化,则该方法将不会按预期运行。