Как вызвать и super (…), и this (…) в случае перегруженных конструкторов?

Мне никогда не приходилось делать это раньше, но поскольку обе должны быть «первой» строкой в ​​конструкторе, как с этим бороться? Какой рефакторинг лучше всего подходит для такой ситуации?

Вот пример:

public class Agreement extends Postable {


public Agreement(User user, Data dataCovered)
{
    super(user);
    this(user,dataCovered,null);

}

public Agreement(User user,Data dataCovered, Price price)
{
    super(user);

    if(price!=null)
        this.price = price;

    this.dataCovered = dataCovered;


}
   ...
}

Вызов super (user) абсолютно необходим. Как быть в таком случае с «необязательными параметрами»? Единственный способ, который я могу придумать, - это повторение, то есть вообще не называть это (...). Просто выполняйте задания в каждом конструкторе.

12
задан Mat 6 August 2011 в 08:04
поделиться