Java Textadventure HashMap wird nicht befüllt?

Manderda

Mitglied
Hallo,
habe mich extra für diese Frage hier angeldet.
Also mein Problem ist das ich eine Hashmap für einen NPC befüellen will, dieses mach ich aus der Klasse Spiel aus nach der Klasse NPC und diese soll es dann in die Klasse Beantworter schreiben. Hier der Quelltext etwas gekürst aufs wesentliche vom Spiel/NPC/Beantworter:

Java:
class Spiel 
{
    private Parser parser;
    private Raum aktuellerRaum;
    private NPC aktuellerNPC;   
    public Spiel() 
    {
        raeumeAnlegen();
        parser = new Parser();
        NPCerstellen();
    }
    private void NPCerstellen() //Hier werden die NPC erstellt und die HashMap befüllt
    {
        NPC Test;
        
        Test = new NPC();
        Test.befuellen("Hallo","Hallo, ich bin ein Test NPC."); //Hier wird die HashMap befüllt
        Test.befuellen("Kaufen", "Ich kann noch nichts verkaufen.");
        
        aktuellerNPC = Test;
    }
}

Hier von NPC
Java:
import java.util.HashSet;

public class NPC
{
    private Eingabeleser leser;
    private Beantworter beantworter;
 
    /**
     * Erzeuge ein NPC.
     */
    public NPC()
    {
        leser = new Eingabeleser();
        beantworter = new Beantworter();
        
    }
    public void befuellen (String frage, String antwort)
    {
        beantworter.befuellen(frage, antwort); //hier werden die Infos weiter gegeben 
    }
}

und noch von Beantworter:
Java:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;

public class Beantworter
{
    
    private HashMap<String,String> antworten;
    public Beantworter()
    {
        antworten = new HashMap<String,String>()        
    }
    public  void befuellen(String frage, String antwort)
    {
        antworten.put(frage, antwort);
    }
}

So wenn noch Fragen sind gerne Fragen🙂 bitte milde über das Spiel urteilen🙂

MfG
 
Woran merkst du dass die HashMap nicht gefüllt wird?
Lass dir am Ende der Methode befuellen mal antworten.size(); ausgeben.
 
Daran das sie leer ist^^ Habe nach Programmstart die Variablen inspiziert.
Werde das mit dem siize Befehl ausprobieren. Hat sonst jemand ne Idee warum die HashMap nicht befüllt wird?
 
kompiliert die Beantworter Klasse? Darf eigentlich gar nicht, weil da ein [c];[/c] fehlt hinter [c]antworten = new HashMap<String,String>()[/c].
Wenn ich das einfüge und die mir unbekannten Variablen rausschmeisse füllt er einwandfrei.

//EDIT:

Java:
class Test 
{ 

    public static void main(String[] args) 
    {
        Test t = new Test();
    }
    
    public Test() {
        NPCerstellen();    	
    }

    private void NPCerstellen() //Hier werden die NPC erstellt und die HashMap befüllt
    {
        NPC Test;
        
        Test = new NPC();
        Test.befuellen("Hallo","Hallo, ich bin ein Test NPC."); //Hier wird die HashMap befüllt
        Test.befuellen("Kaufen", "Ich kann noch nichts verkaufen.");
        
    }
}


Java:
public class NPC
{
    private Beantworter beantworter;
 
    /**
     * Erzeuge ein NPC.
     */
    public NPC()
    {
        beantworter = new Beantworter();
        
    }
    public void befuellen (String frage, String antwort)
    {
        beantworter.befuellen(frage, antwort); //hier werden die Infos weiter gegeben 
    }
}

import java.util.HashMap;

Java:
public class Beantworter
{
    
    private HashMap<String,String> antworten;
    public Beantworter()
    {
        antworten = new HashMap<String,String>();        
    }
    public  void befuellen(String frage, String antwort)
    {
        antworten.put(frage, antwort);
        System.out.println(antworten.size());
        System.out.println(antworten.get(frage));
    }
}

Ausgabe:

Code:
1
Hallo, ich bin ein Test NPC.
2
Ich kann noch nichts verkaufen.
 
Zuletzt bearbeitet:
Komisch, habe die Editierte Datei von dir kopiert und eingefügt und jetzt füllt der die HashMap.
Kompiliert hatte er aber auch voher? Ich weiß nicht wo das Problem lag, haubtsache es ist weg🙂

Danke für die Hilfe
 

Zurück
Oben