2013-04-02 65 views
-2

嗨,我在字符串數組工作,這似乎不會在數組中添加數據讓我得到一個錯誤或空異常空異常陣列

public boolean addCategory(String description){ 
if(numCategories <= maxArrayCategories){ 
    arrayCategories[numCategories] = description; 
    numCategories++; 
    return true;} 
else {return false;}} 

是問題的功能?

+2

你是怎麼定義'arrayCategories'的? –

+0

private String [] arrayCategories; – user2113792

+0

它打破了什麼路線? arrayCatagories定義和初始化在哪裏? –

回答

5

arrayCategoriesnull,你需要以使用它來創建數組本身:

arrayCategories = new String[maxArrayCategories]; 
在你的代碼的頂部

某處,如果這是一個類的成員,可能是在構造函數中。

在Java null is a language literal這意味着引用(在這種情況下你的數組)指向無處。 A NullReferenceException意味着您試圖訪問尚未初始化的值,或者顯式設置爲null(在這種情況下,您試圖設置數組單元格,其中數組尚未初始化)。

+0

thx它的工作原理... – user2113792

0

你的代碼有問題,你從來沒有初始化arrayCategories數組。這就是爲什麼它扔NullPointerException。在使用它之前,您必須初始化一個數組。例如,如果你已經知道了arrayCategories將不得不maxArrayCategories數量的元素,那麼你應該在調用該方法addCategory使用前初始化數組:

arrayCategories = new String[maxArrayCategories]; 

,並且確保所要檢查的條件應該是

if(numCategories < maxArrayCategories) 
0
//Hi I hope numCategories is like a index and has value 0 and maxArrayCategories is the length of array and hope you have initialized the array arrayCategories then please try this. 
//it would be work. 

public boolean addCategory(String description){ 
if(numCategories < maxArrayCategories-1){ 
    arrayCategories[numCategories] = description; 
    numCategories++; 
    return true;} 
else {return false;}}