【发布时间】:2013-06-14 19:02:49
【问题描述】:
我有以下课程:
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);
}
}
该类包含两个可选值,我想提供所有可能的构造函数排列。第一个版本不初始化任何东西,第二个版本只初始化第一个值,第三个版本只初始化第二个值。
最后一个构造函数是第二个和第三个的组合。但不可能写下来,因为代码失败了。
constructor.java:13:对 this 的调用必须是构造函数中的第一条语句 这(cdr); ^ 1 个错误是否可以在没有任何代码冗余的情况下编写最后一个构造函数(也无需调用相同的 setter 方法)?
【问题讨论】:
-
this() 和 super() 的问题必须是[构造函数中的第一个语句][1]。 [1]:stackoverflow.com/questions/1168345/…
-
你调用 this(...) 构造函数两次,你只能让一个构造函数调用另一个构造函数,并且链式构造函数调用必须是构造函数中的第一个语句。
标签: java