2013-04-02 66 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;}}