17. december 2003 - 14:15Der er
7 kommentarer og 1 løsning
Problem med NullPointerException
I et tekst-baseret spil, hvor data indlæses fra en fil, har jeg problemer med NullPointerException. I den følgende kode er de allerede indlæste lokationer og characters lagt i to HashMaps. Nu indlæses de forskellige characters startlokationer så, og hver character lægges ind i et HashMap i startlokationen, der indeholder de characters, der er på den lokation. Samtidig er det så meningen, at alle characters skal ligge i en ArrayList, således at alle characters kan flyttes i hver spil-tur. Men når jeg prøver at "add" en character til ArrayListen "characters" får jeg en NullPointerException... Kan nogen hjælpe???
// Initialize instance variables. String locationKey; String characterKey; City location; Character character; // Initialize new tokenizer. Splits up the line from the file. StringTokenizer tokenizer = new StringTokenizer(currentLine, ";"); locationKey = tokenizer.nextToken(); characterKey = tokenizer.nextToken(); // Finds the City from the location HashMap. location = (City)locations.get(locationKey); // Finds the character from the NPC HashMap. character = (Character)npcs.get(characterKey); // Adds the character to the city character HashMap. location.addCharacter(characterKey,character); // Adds the character to the ArrayList holding all characters in the game. characters.add(character);
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Det jo en reference som ikke er initialiseret ;-) er du sikker på at String locationKey; String characterKey; City location; Character character; er initialiseret?
Øhh jeg er forholdsvis ny i det her - kan du ikke uddybe det lidt? Hvad mener du helt præcist? Kodestumpen er en del af den metode, der indlæser characters i spillet. HashMaps og ArrayList er initialiseret i selve klassen. Character bliver også hentet fint nok i NPC HashMap'et (har testet)...
En klasisk fejlfindningsmodel: Smid en System.out.println(x) ind efter hver linje (hvor x er et tal som øges: String s; System.out.println(1); String s1; System.out.println(2); osv Så kan du helt præcist finde linjen med fejl - hvis den ikke udskrives ellers :-)
lige for en god ordens skyld: Arraylist a; //Her ERKLÆRER a = new ArrayList(); //og først her INITIALISERER vi
det letter det lidt hvis du bruger de rigtigt begreber :-)
Synes godt om
Ny brugerNybegynder
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.