Announcement

Collapse
No announcement yet.

HashMap Ausgabe???

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

  • HashMap Ausgabe???

    Warum bekomme ich "Cello@3e86d0" ausgegeben?
    Eigentlich sollte ich ich ja "sevmek verb" ausgegeben
    bekommen.
    Danke

    Grüße

    import java.util.*;
    import java.awt.*;

    class Test
    {

    public static void main(String[] args)
    {

    HashMap map = new HashMap();
    //Object obj = null;
    String st = null;

    map.put("gehen", new Cello("yürümek", "verb"));
    map.put("sehen", new Cello("görmek", "verb"));
    map.put("lieben", new Cello("sevmek", "verb"));
    //obj = map.get("lieben");
    st = (String)map.get("lieben");
    System.out.println(st);
    }
    }

    class Cello
    {
    String aa;
    String bb;

    public Cello(String s, String g)

    {
    aa = s;
    bb = g;
    }
    }

  • #2
    Mit (String)map.get("lieben") holst Du das Chello-Objekt aus der Map, in der "sevmek verb" steht, aber Du formst es in einen String um, welcher in einem Objekt die toString()-Funktion aufruft. Diese Funktion ist in jedem Objekt "vordefinier" und liefert ObjektKlasse@ID zurueck, sofern Du sie nicht ueberschreibst, Du bekommst also nicht den Inhalt von Chello, sondern eine Beschreibung des Objektes selbst.<p>
    Schau Dir nochmal in Ruhe Deinen Code an. WIESO erwartest Du, dass Du da ueberhaupt einen Variableninhalt siehst? Du hast nicht nur eine falsche Ausgabe-Funktion - Du hast *gar keine* Ausgabe-Funktion.<p>
    Entweder schreibst Du in Dein Chello-Objekt ein public String toString() { return aa+" "+bb; } hinein (wuerd ich nicht machen), oder Du schreibst eine "richtige" Ausgabefunktion public String getContent() { return aa+" "+bb; } und rufst diese bei der Ausgabe auf: Chello c = (Chello)map.get("lieben"); System.out.println(c.getContent());<p>
    Gruss, Marc

    Comment

    Working...
    X