2012-12-06 113 views
1

我最初想說,感謝您花時間看我的文章。基本上我試圖用Math.random創建一個隨機整數的多維數組。代碼編譯並保持返回空指針異常錯誤消息。我不知道我在創建對象時做了什麼錯誤。任何人都可以告訴我代碼有什麼問題嗎?創建一個隨機整數的多維數組

public Table(int r, int c) 
    { 
     rows = r; 
     columns = c; 

     for (int i = 0; i < r; i++) 
      for (int j = 0; j < c; j++) 
       { 
        /* 
        * Here is where the error keeps returning, blueJ keeps pointing 
        * me to this line of code and it has to be the variables I am using 
        * in the array that are causing the issue. The only issue is I      * don't know what to insert for that. 
        */ 
        theTable[i][j] = (int)(100*Math.random()); 
       } 
    } 
+2

我想你還沒有初始化大小的表[i] [j]? – kosa

回答

1

你的代碼在哪裏初始化表?這可以是該行唯一的空值。確保在聲明theTable,你把它定義爲好:

private int[][] theTable = new int[r][c] 
1

地址:

int[][] theTable = new int[r][c]; 

for循環之前吧,如果你希望它是本地的方法。如果你想讓它成爲班級的成員,請在班級頂部添加

private int[][] theTable = new int[r][c]; 

0

您既不聲明也不初始化theTable,所以對於Java而言,它不存在。當您嘗試在Java中使用不存在的對象時,您將得到一個空指針異常。已經有正確的答案爲您的問題提供解決方案。我建議你使用他們的代碼。 durron597的特別清楚/好。

+0

如果你非常喜歡我的回答,爲什麼你不喜歡它? :-D – durron597

+0

哈哈好吧我現在就這樣做。 – hologram