[英]Java - Passing values to a constructor without entering the values one by one
我需要创建一个 TReadings 列表,这些列表将填充我将从 Excel 文件中一一提取的值。
有问题的班级:
public class TReadings {
long zone1;
long zone2;
.
.
.
long zone99;
// constructor
public TReadings (long zone1, long zone2 ... long zone99){
this.zone1=zone1;
.
.
.
}
}
由于这个构造函数有 99 个参数,有没有什么方法可以将值(或列表)传递给构造函数,而无需一一输入所有值?
如果TReadings
在您的控制范围内,即您可以更改它,您可以像这样定义一个构造函数:
public class TReadings {
List<Long> zoneList;
TReadings(List<Long> zoneList){
this.zoneList = zoneList;
}
}
您可以使用可变参数。
public class TReadings {
List<Long> zoneList = new ArrayList<Long>();
public TReadings(Long... values) {
for (Long val : values)
zoneList.add(val);
}
}
然后你可以通过使用参数数量来调用它:
new TReadings(1L, 23L);
new TReadings(1L, 22L, 44L, 87L, 5L);
new TReadings(99L);
public class TReadings {
List<Long> zones;
public TReadings(List<Long> zones) {
this.zones = zones;
}
}
//and to call it
List<Long> zones = new ArrayList<>();
zones.add(1);
//...
zones.add(99);
TReadings readings = new TReadings(zones);
例如:
public class TReadings {
private List<Long> zoneList;
public addZone(Long zone) {
zoneList.add(zone);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.