Oracle 参考资料并未讲述最佳实践this当我们重载构造函数时使用关键字。谁能建议它的最佳实践?
选项 1:委托给另一个构造函数
public class A {
private int x, y, z, p;
public A() {
this(1,1,1,1);
}
public A(int x, int y, int z, int p) {
this.x = x;
this.y = y;
this.z = z;
this.p = p;
}
}
and
选项 2:设置每个字段而不是委托
public class A {
private int x, y, z, p;
public A() {
this.x = 1;
this.y = 1;
this.z = 1;
this.p = 1;
}
public A(int x, int y, int z, int p) {
this.x = x;
this.y = y;
this.z = z;
this.p = p;
}
}
第一个是最好的。
它在官方文件和许多书籍中多次引用。这是一个具体案例方法链或者,正如其他人在评论中指出的那样,伸缩构造函数。它们允许您编写更少的代码并且不重复自己(DRY)。
您可以在实体库中随处找到这种方法,例如阿帕奇共享区以及其他平台的最佳实践。最后,著名的Thinking in Java一书,在初始化和清理章节 (从构造函数调用构造函数部分)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)