【发布时间】:2011-03-24 02:28:21
【问题描述】:
我在 java 中使用多个构造函数时遇到了一些问题。
我想做的是这样的:
public class MyClass {
// first constructor
public MyClass(arg1, arg2, arg3) {
// do some construction
}
// second constructor
public MyClass(arg1) {
// do some stuff to calculate arg2 and arg3
this(arg1, arg2, arg3);
}
}
但我不能,因为第二个构造函数不能调用另一个构造函数,除非它是第一行。
这种情况的常见解决方案是什么? 我无法“在线”计算 arg2 和 arg3。我想也许可以创建一个构造辅助方法,它会进行实际的构造,但我不确定这是否如此“漂亮”......
编辑:使用辅助方法也有问题,因为我的一些字段是最终的,我无法使用辅助方法设置它们。
【问题讨论】:
标签: java constructor overloading