2014-12-11 36 views
0

所以我在将值传递给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的值。

有关如何解决此问题的任何想法?

回答

0

为什么使用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]; 
    } 
} 

}

+0

我使用getDimension到d的类beeColony值设置为维基于用户的输入。您的解决方案效果很好,非常感谢!我试图使用this.Foods =新的Double [FoodNumber] [D]早些时候,但我得到一个错误。也许是因为我初始化食物的方式。我做的是双食品[] [];再次感谢你! – bless1204 2014-12-11 03:25:22