我以前从来不需要这样做,但由于两者都必须是构造函数中的“第一行”,应该如何处理它?对于这样的情况,最好的重构是什么?
以下是一个示例:
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(用户)的调用是绝对必需的.在这种情况下如何处理“可选参数”?我可以想到的唯一方法是重复,即不要称之为(…).只需在每个构造函数中执行任务.