从Java中的输入初始化数组库的大小

时间:2014-12-11 01:59:12

标签: java arrays class initialization size

所以我在将值传递给java中的另一个类时遇到了问题。 我有一个应用程序接受用户的方程式,点击按钮后,它找出方程式所具有的变量数量,并将变量放在两个列表中。现在,我需要将这些变量传递给另一个类。

这里是我需要使用变量的代码片段: beeColony.java

public class beeColony {
int D;
double Foods[][]=new double[FoodNumber][D];
public void getDimension(int D)
    {
        this.D = D;
    }
}

基于此处,我需要将变量Foods初始化为具有取决于FoodNumber和D的大小。对于FoodNumber而言,没有任何问题,因为它是静态的。

在我的主应用程序中有一个事件处理程序

private void getvalueMouseClicked(java.awt.event.MouseEvent evt) { 
    bee.getDimension(dim);
}

当我在我的一个方法中输出变量D时,它等于我赋给它的值。我的问题是阵列Foods的大小。我得到一个IndexOutOfBounds异常。我认为当我初始化数组Foods时,它无法获得D的值。

有关如何解决这个问题的想法吗?

1 个答案:

答案 0 :(得分:0)

为什么使用getDimension()来设置值?

发生这种情况的原因是因为你必须创建一个新的beeColony类,并且在这样做时你使用了默认值D(设置为零)。然后它将使用D的这个值来创建Foods数组。这将创建一个大小为FoodNumber x 0的Foods数组

我会改变如下:

public class beeColony {
   int D;
   double Foods[][]=null;
  public void getDimension(int D)
    {
       this.D = D;
       this.Foods = new double[FoodNumber][D];
    }
 }

}