Avatar billede jonas82 Nybegynder
02. maj 2005 - 20:59 Der er 4 kommentarer og
1 løsning

NullPointerException ved indsættelse i array

Jeg har defineret en variabel:

private static Match[] kampe;

Og så har jeg en metode som henter fra en db og skal fylde i det array. Her er det vigtige fra metoden:

ResultSet antal = stmt.executeQuery("SELECT COUNT(*)... den er i orden
            antal.next();
            int rowCount = antal.getInt(1);
            rs = stmt.executeQuery(sql);
            System.out.println("Antal fra DB: " + rowCount); //debug
            kampe = new Match[rowCount];
            int count = 0;
            while(rs.next()) {
                kampe[count].setId(1337); //denne linie fejler

Indsætter bare 1337 som test, men det giver en NullPointerException. Match objektet "kampe" har selvfølgelig en setId metode som fungerer...

Nogen bud på hvad der er galt?
Avatar billede jonas82 Nybegynder
02. maj 2005 - 21:00 #1
System.out.println("Antal fra DB: " + rowCount); //debug

Udskriver 128
Avatar billede mikkelbm Nybegynder
02. maj 2005 - 21:01 #2
while(rs.next())
{
    kampe[count] = new Kamp (); // Du skal oprette en ny instans
    kampe[count].setId(1337); //denne linie fejler
}
Avatar billede mikkelbm Nybegynder
02. maj 2005 - 21:01 #3
kampe[count] = new Kamp ();

Skal så være:

kampe[count] = new Match ();
Avatar billede mikkelbm Nybegynder
02. maj 2005 - 21:02 #4
Når du opretter et array af objekter, vil elementerne i dette array som udgangspunkt ha' værdien null. Derfor skal du for hvert enkelt element oprette en ny instans.
Avatar billede jonas82 Nybegynder
02. maj 2005 - 21:21 #5
Tusind tak!
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