Как избежать избыточности кода конструктора в Java?
У меня есть следующий класс:
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: call to this must be first statement in constructor this(cdr); ^ 1 error
Можно ли написать последний конструктор без какой-либо избыточности кода (также без вызова тех же методов установки)?