2014-12-11 57 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