我知道从 Java 中的对象构造函数调用可重写的方法是一种不好的(安全)做法。但是,例如,如果构造函数必须初始化一些数据,那么调用相应的 setter 方法似乎是合理的,这样我就不会复制代码。二传手是公开的,而不是最终的。有没有任何标准的方法来处理这个问题,比如声明公共(public)方法调用的私有(private) 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); }
};
最佳答案
如果您真的想要这样做,请创建一个由构造函数和公共(public) setter 调用的辅助私有(private) setter 方法。
关于构造函数中的 Java 可重写调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6104262/