Über HashMap iterieren -> NullPointerException

Status
Nicht offen für weitere Antworten.

PHANTOMIAS

Aktives Mitglied
Hallo an alle!

Ich habe eine Klasse mit einer HashMap über die ich nachdem sie gesetzt ist iterieren will. Ich habe das so gemacht:

Java:
import java.math.BigInteger;
import java.util.HashMap;

public class Test {
	private HashMap<BigInteger,BigInteger> testHashMap;

	Test() {
		init();
	}
	
	private void init() {
		HashMap<BigInteger, BigInteger> testHashMap = new HashMap<BigInteger, BigInteger>();
		testHashMap.put(new BigInteger("0000", 2), new BigInteger("0001", 2));
		testHashMap.put(new BigInteger("0001", 2), new BigInteger("0100", 2));
		// Das funktioniert
		for(BigInteger elem : testHashMap.keySet()) {
			System.out.println(elem.toString(2));
		}
	}

	public void doSomething() {
		// Das nicht
		for(BigInteger elem : testHashMap.keySet()) {
			System.out.println(elem.toString(2));
		}
	}

	public static void main(String[] args) {
		Test testObj = new Test();
		testObj.doSomething();
	}
}

Rufe ich es auf, so gibt das Drüberlaufen in der doSomething()-Methode eine NullPointerException. Wieso funktionieren die gleichen Codezeilen beim Initialisieren der HashMap, nicht aber hier?

Ausgabe:
PHANTOMIAS😀esktop PHANTOMIAS$ java Test
1
0
Exception in thread "main" java.lang.NullPointerException
at Test.doSomething(Test.java:21)
at Test.main(Test.java:28)

Bin wohl nach langerer Java-Abstinenz nicht mehr allzu fit. Mir fällt nichts mehr ein, deswegen habe ich dieses Minimal-Beispiel zusammengestellt. Hat jemand eine Idee?

Danke + Gruß PHANTOMIAS
 
Du legst in init eine neue (lokale) Variable testHashMap an, die die MemberVariable verdeckt.

Die erste Zeile von init() muss so lauten:
testHashMap = new HashMap<BigInteger, BigInteger>();
 
Es ist Zeit für mein Bett 🙂
10 andere Klassenvariablen habe ich richtig angelegt und bei der HashMap mache ich so etwas. Habe das echt nicht gesehen.

Jetzt funktioniert es natürlich...

Danke + Gruß PHANTOMIAS
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben