java – 如何调用超级(…)和这(…)在重载构造函数的情况下?

前端之家收集整理的这篇文章主要介绍了java – 如何调用超级(…)和这(…)在重载构造函数的情况下?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我以前从来不需要这样做,但由于两者都必须是构造函数中的“第一行”,应该如何处理它?对于这样的情况,最好的重构是什么?

以下是一个示例:

@H_404_4@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(用户)的调用是绝对必需的.在这种情况下如何处理“可选参数”?我可以想到的唯一方法是重复,即不要称之为(…).只需在每个构造函数中执行任务.

解决方法

你不能同时调用超级(..)和这个(…).您可以做的是重新构建重载的构造函数的结构,以便最后一个被调用调用调用super(…). 如果这不是一个选项,你必须在每个构造函数中执行赋值.

猜你在找的Java相关文章