是否可以从另一个(在同一个类中,而不是从子类中)调用构造函数?如果有,怎么样?什么是调用另一个构造函数的最佳方法(如果有几种方法可以做到)?
我有以下课程:
class Pair
{
String car;
Integer cdr;
public Pair () {}
public Pair (String car) { this.car = car; }
public Pair (Integer cdr) { this.cdr = cdr; }
public Pair (String car, Integer cdr)
{
this(car);
this(cdr);
}
}
Run Code Online (Sandbox Code Playgroud)
该类包含两个可选值,我想提供所有可能的构造函数排列.第一个版本不初始化任何内容,第二个版本仅初始化第一个值,第三个版本仅初始化第二个值.
最后一个构造函数是第二个和第三个的组合.但是不可能把它写下来,因为代码失败了.
constructor.java:13: call to this must be first statement in constructor
this(cdr);
^
1 error
是否可以编写最后一个没有任何代码冗余的构造函数(也没有调用相同的setter方法)?