我有一个接受参数的构造函数,这个参数可能无效;如果它无效,我希望它运行构造函数的无参数构造函数.否则,它应该继续执行给定的输入,并对该输入执行多项操作.
不幸的是,Java出于某种原因强制构造函数调用在第一个语句中.除了复制代码之外,还有什么方法可以解决这个问题吗?(我内心的程序员不喜欢这样!)
理想情况下,我的代码应该是这样工作的:
public Constructor() {
super();
// some constructor code
}
public Constructor(Object arg) {
if (arg == null) {
this(); // calls the first constructor instead of proceeding
return;
}
super();
/**
* some code to handle the new input,
* if it isn't null
**/
}
然而,这在Java中显然是不可能的,因为任何构造函数语句都需要在第一个语句中.有没有一种优雅/正确的方法来处理这件事?除了构造函数链接之外,我在网上找不到任何东西,这是另一回事.