-2

嗨,我在字符串数组中工作,似乎不会在数组中添加数据,让我收到错误或空异常

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

问题是功能吗?

4

3 回答 3

5

arrayCategoriesnull,您需要创建数组本身才能使用它:

arrayCategories = new String[maxArrayCategories];

在代码顶部的某处,如果这是一个类成员,可能在构造函数中。

在 Java中, null是一种语言字面意思,即引用(在本例中为您的数组)指向任何地方。NullReferenceException表示您正在尝试访问尚未初始化的值,或者已明确设置为 null(在这种情况下,您正在尝试设置数组单元格,其中数组尚未初始化)。

于 2013-04-02T18:37:29.800 回答
0

您的代码的问题是您从未初始化arrayCategories数组。这就是它抛出NullPointerException. 您必须在使用数组之前对其进行初始化。例如,如果您已经知道arrayCategories将有maxArrayCategories多个元素,那么您应该在调用方法之前addCategory使用以下方法初始化数组:

arrayCategories = new String[maxArrayCategories];

并且还要确保要检查的条件应该是

if(numCategories < maxArrayCategories)
于 2013-04-02T18:41:07.577 回答
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;}}
于 2013-04-02T18:51:43.303 回答