我知道从Java中的对象构造函数调用可覆盖的方法是一种糟糕的(安全性)实践.但是,例如,如果构造函数必须初始化某些数据,则调用相应的setter方法似乎是合理的,这样我就不会复制代码.安装者是公开的,而不是最终的.是否有任何标准的处理方法,如声明私有的setter方法,公共方法调用?为了说明,这里有一些代码:
class A {
private double x,y;
private privateSetX(double x1) { x=x1; }
private privateSetY(double y1) { y=y1; }
public A() { privateSetX(0); privateSetY(0); }
public setX(double x1) { privateSetX(x1); }
public setY(double y1) { privateSetY(y1); }
};
Run Code Online (Sandbox Code Playgroud) 仅在继承或大多数情况下是真的吗?
public class MyClass {
public int id;
public MyClass() {
// Some stuff
setId(5);
}
public setId(int id) {
this.id = id;
}
}
Run Code Online (Sandbox Code Playgroud)