从Java输入初始化数组基的大小
问题描述:
所以我在将值传递给java中的另一个类时遇到了问题。 我有一个应用程序接受来自用户的等式,点击按钮后,它找出等式的变量的数量,我将变量放在两个列表中。现在,我需要将这些变量传递给另一个类。从Java输入初始化数组基的大小
这里的代码片断,我需要使用变量: beeColony.java
public class beeColony {
int D;
double Foods[][]=new double[FoodNumber][D];
public void getDimension(int D)
{
this.D = D;
}
}
基于从这里,我需要将变量初始化食品成大小取决于FoodNumber和D. FoodNumber是没有问题的,因为它是一个静态的。
在我的主应用程序有一个事件处理程序
private void getvalueMouseClicked(java.awt.event.MouseEvent evt) {
bee.getDimension(dim);
}
当I输出中的我的方法之一的变量d,它是等于予分配它的值。我的问题是数组食物的大小。我得到一个IndexOutOfBounds异常。我认为当我初始化数组Foods时,它无法获得D的值。
有关如何解决此问题的任何想法?
答
为什么使用getDimension()设置值?
发生这种情况的原因是因为您必须创建了一个新的beeColony类,并在此过程中使用了默认值D(设置为零)。然后它会使用D的这个值来创建食物数组。这将产生大小FoodNumber的食品数组x 0
如下我想改变它:
public class beeColony {
int D;
double Foods[][]=null;
public void getDimension(int D)
{
this.D = D;
this.Foods = new double[FoodNumber][D];
}
}
}
我使用getDimension到d的类beeColony值设置为维基于用户的输入。您的解决方案效果很好,非常感谢!我试图使用this.Foods =新的Double [FoodNumber] [D]早些时候,但我得到一个错误。也许是因为我初始化食物的方式。我做的是双食品[] [];再次感谢你! – bless1204 2014-12-11 03:25:22