# Java Textadventure HashMap wird nicht befüllt?



## Manderda (23. Jun 2010)

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:


```
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

```
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:

```
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


----------



## Eldorado (23. Jun 2010)

Und was ist das Problem/der Fehler/die Frage?


----------



## Manderda (23. Jun 2010)

Das Problem ist das die HachMap nicht gefüllt wird und ich nicht weiß wieso.
Sorry das ich die Frage vergessen habe^^


----------



## Gast2 (23. Jun 2010)

Woran merkst du dass die HashMap nicht gefüllt wird?
Lass dir am Ende der Methode befuellen mal antworten.size(); ausgeben.


----------



## Manderda (24. Jun 2010)

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?


----------



## srea (24. Jun 2010)

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:


```
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.");
        
    }
}
```



```
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;


```
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:


```
1
Hallo, ich bin ein Test NPC.
2
Ich kann noch nichts verkaufen.
```


----------



## Manderda (24. Jun 2010)

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


----------



## Manderda (24. Jun 2010)

Hat sich erledigt, warum das jetzt Funktionirt weiß ich nicht aber egal


----------

