我有以下代码,我在此行获得Null指针异常:unWanted[g].equals("")
我不知道它怎么可能因为我之前检查过如果unWanted不是null。 感谢您的帮助:)
public String[] setExercies(){
DataBaseMain data = new DataBaseMain(this);
data.open();
String[] unWanted = data.getAllUnwantedExercies();
String[] exits = data.getAllExercies();
data.close();
if(unWanted == null)
return exits;
int f = 0;
for(int g = 0; g < unWanted.length; g++)
{
if(unWanted[g].equals(""))
f++;
}
String[] temp = new String[unWanted.length-f];
f = 0;
for (int k = 0; k < unWanted.length; k++){
if(unWanted[k].equals("") == false)
{
temp[f] = unWanted[k];
f++;
}
}
答案 0 :(得分:0)
unWanted中的字符串值为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++;
}
答案 1 :(得分:0)
由于某种原因,您的getAllUnwantedExercies()
返回null。
你可以在这里检查null
for(int g = 0; g < unWanted.length; g++)
{
if(unwanted[g] != null && unWanted[g].equals(""))
f++;
}
答案 2 :(得分:0)
数组unWanted中的一个值为null。您必须找出包含它的索引,但您可以尝试:
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++;
}