Java 字符串数组的空指针异常
我有下面的代码,在这一行我得到了空指针异常:Java 字符串数组的空指针异常,java,android,nullpointerexception,arrays,Java,Android,Nullpointerexception,Arrays,我有下面的代码,在这一行我得到了空指针异常:不需要的[g]。等于(“” 我不知道这是怎么回事,因为我在检查之前,如果不需要的不是空的。 谢谢你的帮助:) public String[]setExercies(){ DataBaseMain数据=新DataBaseMain(此); data.open(); 字符串[]不需要的=数据。GetAllunAnteXercies(); String[]exits=data.getAllExercies(); data.close(); 如果(不需要==nu
不需要的[g]。等于(“”
我不知道这是怎么回事,因为我在检查之前,如果不需要的不是空的。
谢谢你的帮助:)
public String[]setExercies(){
DataBaseMain数据=新DataBaseMain(此);
data.open();
字符串[]不需要的=数据。GetAllunAnteXercies();
String[]exits=data.getAllExercies();
data.close();
如果(不需要==null)
返回出口;
int f=0;
对于(int g=0;g<0.length;g++)
{
if(不需要的[g]。等于(“”)
f++;
}
字符串[]临时=新字符串[不需要的.length-f];
f=0;
for(int k=0;k<0.length;k++){
if(不需要的[k]。等于(“”==false)
{
温度[f]=不需要的[k];
f++;
}
}
不需要的字符串值为null。您需要额外的null检查。根据您的意图使用其中一个
for(int g = 0; g < unWanted.length; g++)
{
if(unWanted[g] == null || unWanted[g].equals(""))
f++;
}
for(int g = 0; g < unWanted.length; g++)
{
if(unWanted[g] != null && unWanted[g].equals(""))
f++;
}
for(int g=0;g
由于某些原因,您的GetAllunAnteXercies()
返回null
你可以在这里签空
for(int g = 0; g < unWanted.length; g++)
{
if(unwanted[g] != null && unWanted[g].equals(""))
f++;
}
for(int g=0;g
数组中的一个值为空。您必须找出包含该值的索引,但可以尝试:
for(int g = 0; g < unWanted.length; g++)
{
String unWantedVal = unWanted[g];
if(unWantedVal == null)
System.out.println("Index " + g + " has a null value!");
else if(unWantedVal.equals(""))
f++;
}
for(int g=0;g
看起来像是不需要的[g]
是null
在g
的某个值。在应用等于之前,请执行null
检查。是否检查了此函数(data.getAllunAnteXercies();)是否返回值且不为null?将字符串与常量比较时,请反转测试,使常量等于非常量。例如,使用blam.equals(“hoot”)
而不是如果blam为null将抛出NPE,请使用hoot.equals(blam)
哪一个会抛出NPE。@DwB:另一方面,尽早检测NPE通常是一件好事,因为数组中有空元素可能是一个需要修复的错误。
for(int g = 0; g < unWanted.length; g++)
{
String unWantedVal = unWanted[g];
if(unWantedVal == null)
System.out.println("Index " + g + " has a null value!");
else if(unWantedVal.equals(""))
f++;
}