有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

因此,我在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时,它等于我分配给它的值。我的问题是数组的大小。我得到一个IndexOutOfBounds异常。我认为当我初始化数组时,它无法得到D的值

有没有关于如何解决这个问题的想法


共 (1) 个答案

  1. # 1 楼答案

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

    }