Как избежать избыточности кода конструктора в 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

Можно ли написать последний конструктор без какой-либо избыточности кода (также без вызова тех же методов установки)?

Ответы на вопрос(4)

Ваш ответ на вопрос