java - 避免重载构造函数中的重复
问题描述
我已经有一个构造函数测试,并尝试重载这个,代码如下:
public Test(string a, string b, XXX c, XXX d){
this.a = a;
this.b = b;
methodA(a, b, d);
}
public Test(string a, string b, XXX c, XXX d, String e){
this.a = a;
this.b = b;
methodA(a, b, d, e);
}
methodA 也是一个重载方法,如您所见“this.a = a; this.b = b;” 那部分被重复了。我怎样才能避免这种情况?
解决方案
您可以使用该this()
方法来避免代码的重复。
所以你所拥有的已经非常接近你需要的了。只需将methodA(...)
通话更改为通话即可this(...)
。
正如@Michael Berry和@Silvio Mayolo的评论所建议的那样,我什至会更进一步,并链接构造函数。最后的结果应该是这样的。
public Test(string a, string b, XXX c, XXX d, String e){
this.a = a;
this.b = b;
this.c = c;
this.d = d;
this.e = e;
}
public Test(string a, string b, XXX c, XXX d){
this(a, b, c, d, null);
}
推荐阅读
- java - 从 swagger 向 REST WebServices 发送请求结束到 401 并且未经授权
- localization - 如何在空手道框架中使用小黄瓜本地化?
- angular - 如何从 Angularfire 承诺创建的可观察对象中捕获错误
- yaml - 如何动态迭代从机器人框架中的yaml文件导入的变量
- javascript - 带有 javascript 的单选按钮
- python - 当我更改权限文件 ir.model.access.csv 并升级模块时,我有一个问题缺少字段“对象”(model_id) 的必需值
- pyiron - 在 HPC 集群中运行 Vasp 作业
- numpy - 如何将形状(4、1、1)的numpy数组重塑为(4、2、1)?
- ios - 使用 SwiftUI 为 UINavigationBar 自定义背景颜色
- macos - 如何通过命令行 mac os 更改 nginx.conf 上的端口?