2011-02-10 79 views
2

爲什麼ArrayIndexOutOfBoundsException會發生,以及如何避免在Android?爲什麼發生ArrayIndexOutOfBoundsException以及如何在Android中避免它?

+3

那麼天真的回答是:「因爲你試圖訪問一個不存在的數組索引,因此超出了數組的範圍「,這意味着索引太大或太小(在後一種情況下最可能是負數)。然而,基本上不可能在沒有A)的情況下幫助你解決問題。A)更多描述或B)代碼示例(最好是B,真的)。 – eldarerathis 2011-02-10 14:24:20

+2

甚至更​​短的答案:不要訪問超出其聲明邊界的數組。 – 2011-02-10 14:25:30

回答

4

當您試圖訪問一個不存在的數組項,拋出此異常:訪問數組的項目之前

String [] myArray = new String[2]; 

myArray[2] = "something"; // Throws exception 
myArray[-1] = "something"; // Throws exception 

你應該檢查你的索引不是消極和不大於數組長度高。

1

這意味着,如上所述,您訪問一個不存在的數組項。

大多數情況下,這是因爲有人要求數組的大小(長度),然後嘗試讀取最後一項作爲array[length]。 但陣列在開始,所以最後你可以讀取array[length-1]

Sollution是ofcourse 不要訪問不存在

3

爲什麼ArrayIndexOutOfBoundsException異常發生[...]

這裏是the Java Language Specification: 10.4 Array Access報價:

在運行時檢查所有數組訪問;嘗試使用小於零或大於或等於數組長度的索引會導致拋出ArrayIndexOutOfBoundsException。

 

[...],以及如何避免它的Android?

確保您的指數在[0 ... yourArray.length -1]範圍內。

(注-1以上。數組0索引,這意味着你會發現在索引0處的第一個元素,最後在長-1)。

相關問題