我有几个不同的变量" i",例如wip0,wip1,... wip26。每一个都是整数的集合。这可能很容易,但我无法找到答案。
如何创建更新给定变量的函数?
我有更新特定变量的功能,但我不想创建27个功能。
现在我有:
updateWip(int type, int quantity){
int temp;
temp = wip.get(type);
temp = temp + quantity;
wip.set(materialType, temp);
}
我需要这样的东西:
updateWip(int type, int quantity, int station)
答案 0 :(得分:1)
在周围的类中定义一个数组,并使用station
参数作为数组索引,如下所示:
class Stations {
WIP[] wip = new WIP[27];
public void updateWip(int type, int quantity, int station) {
//...
wip[station].set(materialType, temp);
}
}
但是,这需要您初始化数组字段,因为首先像'wip [0]'这样的每个字段都是null
。为了克服这个问题,你可以添加一个初始化数组字段的循环,例如:在构造函数中。有关数组的更多信息,请查看this site。
当您使用java8时,您还可以使用流API来创建具有所需内容的填充数组。然后你可以像这样在类中声明属性:
WIP[] wip = IntStream.generate(() -> new WIP()).limit(27).toArray();
请参阅this post,我从哪里获得流式传输模板。
答案 1 :(得分:0)
如何创建更新给定变量的函数?
你没有。正确的解决方案是用单个变量替换wip0, wip1,... wip26
,该变量是一个包含27个元素的数组。然后使用数组索引来选择要读取/更新的相应数组元素。
理论上,你可以使用反射来更新变量,如果它们是字段(不是局部变量!),但这非常可怕(复杂的代码,数量级低效,易碎)。只是不要这样做......