重载构造函数调用其他构造函数,但不作为第一个语句
2022-09-02 02:42:56
我在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。我想也许创建一个构造助手方法,这将完成实际的构造,但我不确定这是否如此“漂亮”......
编辑:使用帮助器方法也是有问题的,因为我的一些字段是最终的,我无法使用帮助器方法设置它们。