Мне никогда не приходилось делать это раньше, но поскольку обе должны быть «первой» строкой в конструкторе, как с этим бороться? Какой рефакторинг лучше всего подходит для такой ситуации?
Вот пример:
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)
абсолютно необходим. Как быть в таком случае с «необязательными параметрами»? Единственный способ, который я могу придумать, - это повторение, то есть вообще не называть это (...). Просто выполняйте задания в каждом конструкторе.