0

次のコードがあり、この行で 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++;
    }
}
4

3 に答える 3

0

unWanted 内の文字列値は 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++;
}
于 2013-05-10T16:36:21.373 に答える
0

何らかの理由getAllUnwantedExercies()で null を返しています。

ここでnullをチェックできます

for(int g = 0; g < unWanted.length; g++)
{
    if(unwanted[g] != null && unWanted[g].equals(""))
        f++;
}
于 2013-05-10T16:36:28.113 に答える
0

unWanted 配列の値の 1 つが 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++;
}
于 2013-05-10T16:39:09.867 に答える