HashMap: Zugriff auf Werte scheitert

Der Held

Erfahrenes Mitglied
Folgender Code
Code:
System.out.println("Alt: "+issue.getChild("issueScope1").getAttributeValue("id")+ " Neu: "+ scopeOptTranslation.get(issue.getChild("issueScope1").getAttributeValue("id")));
			System.out.println("Drin "+(scopeOptTranslation.containsKey(issue.getChild("issueScope1").getAttributeValue("id"))));		
			System.out.println(scopeOptTranslation.get("1")+"");
			Collection t = scopeOptTranslation.entrySet();
			for (Iterator iter = t.iterator(); iter.hasNext();) {
				String element = iter.next().toString();
				System.out.println(element);
				
			}
			System.out.println("1:" + scopeOptTranslation.get("1"));
			System.out.println("2:" + scopeOptTranslation.get("2"));
			System.out.println("5:" + scopeOptTranslation.get("5"));
			System.out.println("6:" + scopeOptTranslation.get("6"));
			System.out.println("8:" + scopeOptTranslation.get("8"));

erzeugt folgende Ausgabe
Code:
Alt: 1 Neu: null
Alt: 1 Neu: null
Drin false
null
[Attribute: id="8"]=258
[Attribute: id="5"]=256
[Attribute: id="7"]=253
[Attribute: id="4"]=255
[Attribute: id="1"]=251
[Attribute: id="9"]=259
[Attribute: id="6"]=257
[Attribute: id="3"]=254
[Attribute: id="2"]=252
[Attribute: id="10"]=260
1:null
2:null
5:null
6:null
8:null
Das Problem:
Wenn ich mir ueber entrySet() die Schluessel ausgeben lasse, sehe ich dass die Schluessel 1,2,5,6 und 8 existieren und ihnen Werte zugeordnet sind. Wenn ich drauf zugreife erhalte ich immer null zurueck. Was ist denn nun daran falsch?

Die ganzen Rattenschwaenze mit getChild() etc. kommen daher, dass ich die Schluessel mit JDOM aus einer XML-Datei auslese.
 
Hallo!

Da dein geposteter Codeausschnitt nicht gerade viel hergibt, kann man dir auch nur bedingt helfen. Es schaut ganz danach aus, dass du als Key nicht "1", "2" ... 3 etc. verwendest sondern die Attribut Wrapper welche du beim Parsen von JDOM erhälst.
Iteriere doch mal über das KeySet der Map und versuche darüber an die Werte zu kommen.

Gruss Tom
 
Manchmal sieht man den Wald vor lauter Baeumen nicht. Ich hatte die Keys mit getAttribute("id") anstelle von getAttributeValue("id") in die HashMap geschrieben.

Dachte dass diese [Attribute: id="4"] daher kommt dass ich die Elemente der Collection einfach direkt ausgebe.

Sorry fuer den wenig brauchbaren Code, aber die zugehoerige Methode ist durch die Fehlersuche so aufgeblaeht, dass ich sie hier nicht reinschreiben wollte.

Vielen Dank fuer den Schubser in die richtige Richtung.
 

Neue Beiträge

Zurück