webForumDet fria alternativet

nullPointerException = Jag sliter snart mitt hår i bitar!

Java

6 svar · 402 visningar · startad av Compusa

Medlem sedan jan. 20023 327 inlägg
Frågan#1

Sista raderna när jag ska sätta in mina rum i en arrayList genererar fel och jag kan verkligen inte förstå varför?? Det går bra att komplimera men felen uppstår dö jag kör scriptet.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Stack;
import java.util.Random;

public class Game 
{
    private Parser parser;
    //private Room currentRoom;
    private Player player;
    private Stack visitedRooms;
    private ArrayList rooms;
    private ArrayList items;
    private Random randomizer;
        
    /**
     * Create the game and initialise its internal map.
     */
    public Game(String playerName) 
    {
        player = new Player(playerName);
        createRooms();
        rooms = new ArrayList();
        items = new ArrayList();
        parser = new Parser();
        randomizer = new Random();
        visitedRooms = new Stack();
        
        // add the start position ton visited rooms at start up
        visitedRooms.push(player.getCurrentRoom());
    }

    /**
     * Create all the rooms and link their exits together.
     */
    private void createRooms()
    {   
        Room cell, corridor, harrysCell, emptyCell, deathrow, doctor, kitchen, storageRoom, publicArea, lobby, freedom;

        // create the rooms
        cell = new Room("description");
        corridor = new Room("description");
        harrysCell = new Room("description");
        emptyCell = new Room("description");
        deathrow = new Room("description");
        doctor = new Room("description");
        kitchen = new Room("description");
        storageRoom = new Room("description");
        publicArea = new Room("description");
        lobby = new Room("description");
        freedom = new Room("description");
        
        // Add the rooms to the ArrayList rooms
        rooms.add(cell); //[B]Fel genereras här och neråt, nullPointerException[/B]
        rooms.add(corridor);
        rooms.add(harrysCell);
        rooms.add(emptyCell);
        rooms.add(deathrow);
        rooms.add(doctor);
        rooms.add(kitchen);
        rooms.add(storageRoom);
        rooms.add(publicArea);
        rooms.add(lobby);
        rooms.add(freedom);
}
Medlem sedan apr. 200357 inlägg
#2

ArrayList:en för rooms är inte skapat när du skapar rummen i creareRooms metoden, utan den skapar du först efter att rummen har skapats, skapa den innan du anropar createRooms():

player = new Player(playerName);
rooms = new ArrayList();
createRooms();
Medlem sedan aug. 20021 752 inlägg
#3

Du fyller rum listan innan du har skapat utrymme för listan.

   player = new Player(playerName);
   createRooms();
   rooms = new ArrayList();

Kör såhär istället,

   player = new Player(playerName);
   rooms = new ArrayList();
   createRooms();

/Viktor

Medlem sedan jan. 20023 327 inlägg
#4

Ni båda ska egentligen hur som helst stort tack för hjälpen, att det alltid ska vara de enkla felen som är svårast att lösa :)

Medlem sedan sep. 20021 655 inlägg
#5

World of Zuul? ;)

Medlem sedan jan. 20023 327 inlägg
#6

Stämmer bra det, en riktig klassiker antar jag? :)

Medlem sedan sep. 20021 655 inlägg
#7

Compusa skrev:

Stämmer bra det, en riktig klassiker antar jag? :)

Jag läste 7p OOP tidigare under hösten och använde den boken ("BlueJ Objects First") och vi använde Zuul en hel del genom labbar och inlämningsuppgifter:
http://www.cs.lth.se/DAT501/PROG/Materials/zuul.shtml

Ett riktigt trevligt sätt att göra uppgifter, måste jag säga :)

248 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)