0

我有几个不同“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)
4

2 回答 2

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首先出现。为了克服这个问题,您可以添加一个循环来初始化数组字段,例如在构造函数中。有关阵列的更多信息,请查看此站点

当您使用 java8 时,您还可以使用流 API 创建一个包含所需内容的填充数组。然后你可以像这样在类中声明属性:

WIP[] wip = IntStream.generate(() -> new WIP()).limit(27).toArray();

请参阅这篇文章,我从中获得了流媒体模板。

于 2016-02-21T01:46:51.670 回答
0

如何创建一个函数来更新给定变量?

你没有。正确的解决方案是替换wip0, wip1,... wip26 为一个包含 27 个元素的数组的变量。然后使用数组索引来选择合适的数组元素来读取/更新。

从理论上讲,如果变量是字段(不是局部变量!),您可以使用反射来更新变量,但这非常可怕(复杂的代码、效率低下的数量级、脆弱)。只是不要这样做...

于 2016-02-21T01:46:01.010 回答