Java: HashMap-Problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Java: HashMap-Problem

    Guten Abend,

    ich habe bei der Umsetzung eines kleinen Spiels ein Problem.
    Ich möchte die Ausgänge eines Spiel-Raumes in einer HashMap verwalten.
    Dafür habe ich in einer Klasse Room folgende Änderungen gemacht:

    Code:
    //eine Map exitMap vom Typ HashMap wir angelegt
    public HashMap exitMap;    
    
    //Aufruf der Methode setExits zum definieren der Ausgänge eines Raumes.
    //Über die Parameter werden die Ausgänge gesetzt. Wird hier null 
    //übergeben, befindet sich in dieser Richtung kein Ausgang 
    public void setExits(Room north, Room east, Room south, Room west) 
        {
    
           /* if(north != null) exitMap.put( "north", north);
            else exitMap.put( "north", null);*/                                   //<-- Variante1
    
            exitMap.put( "north", north);                                         //<-- Variante2
     
            if(east != null) exitMap.put( "east", east);
            else exitMap.put( "east", null);
            if(south != null) exitMap.put( "south", south);
            else exitMap.put( "south", null);
            if(west != null) exitMap.put( "west", west);
            else exitMap.put( "west", null);
    
        }
    In beiden Versionen (auskommentiert und die Zeile darunter) funktioniert es nicht.
    Ich denke aber, dass eigentlich die besser Lösung Variante2 wäre. Da beim Übergeben der Räume, nicht vorhandene Ausgänge sowieso mit null belegt sind. Also muss darauf bei der Belegung der Map nicht unbedingt nochmals getestet werden.

    Leider kommt es beim Anlegen eines Neuen Spiels zu folgendem Fehler:

    Zeile: exitMap.put( "north", north);
    Fehler: NullPointerException null

    Woran kann das liegen?!? Es wäre nett, wenn Ihr mir dabei weiterhelfen könntet...

  • #2
    Abend!

    Ich hab den Fehler selbst gefunden.
    War eigentlich bloss ein flüchtigkeitsfehler!
    Richtig würde er heissen:

    public HashMap exitMap = new HashMap();

    Comment

    Working...
    X