2010-03-23 71 views
1

我有奇怪的問題,我無法修復:多維數組和ArrayIndexOutOfBoundsException異常

字段:

private boolean[][][] gaps; 

構造(第1行):

gaps = new boolean[NOBARRICADES][WIDTH][HEIGHT]; 

構造函數(第二行):

for (int i = 0; i < NOBARRICADES; i++) { 

的Java拋出一個錯誤的二號線,說:螺紋

異常「主要」 java.lang.ArrayIndexOutOfBoundsException

是否有任何與Java語法(錯就錯在這幾行代碼)或者我應該在其他地方尋找問題?

+0

假設'NOBARRICADES'是某個地方的一個常量int,那麼對於您發佈的用於引發異常的循環而言,這是不可能的。你可以發佈它所做的一切的實際代碼嗎? – Tarka 2010-03-23 17:55:01

+2

既然在第二行沒有數組引用,我懷疑你沒有發佈足夠的代碼給任何人來幫助你。 – bmargulies 2010-03-23 17:55:05

+0

您能向我們展示您實際將索引差距的位置嗎?第二行實際上並不是異常的來源,你的循環聲明很好。我會假設你用i引用了你的數組的錯誤維度。另外pro-tip:不要調用循環變量像i或j這樣簡單的事情,把它們稱爲「index」,「inner_index」,「first_index」,任何描述性的東西,特別是當你要嵌套循環時。 – marr75 2010-03-23 17:57:11

回答

1

您可能誤讀了錯誤輸出。你的第二行甚至不訪問數組 - 確保它不是引發異常的for循環體的第一行。此外,請確保您僅使用i來索引陣列的第一維

0

有時java編譯器被一兩行關閉。你可以檢查它所說的錯誤是否在線附近的代碼行,看看你是否看到任何東西。

+0

什麼時候?在我的經驗中,java編譯器從來沒有被「一兩行」關閉。唯一的區別是,如果您從運行的服務器上下載源文件,並且您使用的FTP客戶端插入換行符以不同的方式對其進行格式化。 – karlgrz 2010-03-23 18:09:36

+0

我使用Java源類時遇到此問題。我認爲這是javadoc的問題。運行時會給出一個行號,如果我檢查該行,它是來自其他方法。 – 2010-03-23 19:55:50

0

對不起,但你真的不想這樣做。

多維數組永遠不值得他們造成的困惑 - 他們根本沒有正面的價值(POSSIBLE除了明顯的,明顯的x,y數組)。

我建議你嘗試從一個二維數組列表或二維數組的對象(其中每個對象包含一個列表)開始。

相關問題