嗨,我在字符串数组中工作,似乎不会在数组中添加数据,让我收到错误或空异常
public boolean addCategory(String description){
if(numCategories <= maxArrayCategories){
arrayCategories[numCategories] = description;
numCategories++;
return true;}
else {return false;}}
问题是功能吗?
嗨,我在字符串数组中工作,似乎不会在数组中添加数据,让我收到错误或空异常
public boolean addCategory(String description){
if(numCategories <= maxArrayCategories){
arrayCategories[numCategories] = description;
numCategories++;
return true;}
else {return false;}}
问题是功能吗?
arrayCategories
是null
,您需要创建数组本身才能使用它:
arrayCategories = new String[maxArrayCategories];
在代码顶部的某处,如果这是一个类成员,可能在构造函数中。
在 Java中, null是一种语言字面意思,即引用(在本例中为您的数组)指向任何地方。NullReferenceException表示您正在尝试访问尚未初始化的值,或者已明确设置为 null(在这种情况下,您正在尝试设置数组单元格,其中数组尚未初始化)。
您的代码的问题是您从未初始化arrayCategories
数组。这就是它抛出NullPointerException
. 您必须在使用数组之前对其进行初始化。例如,如果您已经知道arrayCategories
将有maxArrayCategories
多个元素,那么您应该在调用方法之前addCategory
使用以下方法初始化数组:
arrayCategories = new String[maxArrayCategories];
并且还要确保要检查的条件应该是
if(numCategories < maxArrayCategories)
//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;}}