Avatar billede jih Nybegynder
01. oktober 2009 - 17:39 Der er 3 kommentarer og
1 løsning

slette fra en arraylist i et for loop

Hej,

jeg har et problem med en opgave. Jeg har 2 klasser: Club og Membership. Jeg skal skrive en metode som hedder purge(int month, int year) som så skal purge alle som er "joined" på den dato.

Koden ser sådan ud:

public ArrayList<Membership> purge(int month, int year)
{
  ArrayList<Membership> purged = new ArrayList<Membership>();
  purged = null;
  Membership curMember;
  if ((month < 1) || (month > 12))
  {
    // Wrong month, return empty object.
  } else {
    // Purge members joined that month.
    for (int i = 0; i < membership.size(); i++)
    {
      curMember = membership.get(i);
      if ((month == curMember.getMonth()) && (year == curMember.getYear()))
      {
        purged.add(curMember); // HER får jeg nullpointer fejl
        membership.remove(i);
        i--;
      }
    }
  }
  return purged;
}

Hvorfor får jeg en nullPointer fejl i purged.add(curMember) ?

Jeg har skrivet koden (næsten) direkte af fra en metode i et andet projekt som virker. Forstår ikke?

På forhånd tak,

// jih
Avatar billede arne_v Ekspert
01. oktober 2009 - 18:06 #1
purged = null;  // ????
Avatar billede odsgaard Praktikant
01. oktober 2009 - 20:24 #2
Som Arne påpeger, så sætter du din purged variabel til null. Når du så forsøger at tilføje noget til listen, så får du en NullPointerException. Prøv at fjerne linien og se om det ikke virker :)
Avatar billede jih Nybegynder
02. oktober 2009 - 11:11 #3
Tak for hjælpen. Hvis I smider et svar, så får I points :-)
Avatar billede arne_v Ekspert
02. oktober 2009 - 14:54 #4
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester