NullPointerException while using put method of HashMap
Solution 1
HashMap<String, String> dataMap = new HashMap<String,String>();
Your dataMap
variable isn't initialized at this point. You should be getting a compiler warning about that.
Solution 2
Where is datamap initialised ? It's always null.
To clarify, you declare the variable and set it to null. But you need to instantiate a new Map, whether it's a HashMap or similar.
e.g.
datamap = new HashMap();
(leaving aside generics etc.)
Solution 3
dataMap is declared but not initialized. It can be initialized with
datamap = new HashMap();
Solution 4
Well, there are three objects accessed on that line. If nextLine[0] and nextLine[6] aren't null, because the println call above worked, then that leaves dataMap. Did you do dataMap = new HashMap(); somwehere?
Ankur
A junior BA have some experience in the financial services industry. I do programming for my own personal projects hence the questions might sound trivial.
Updated on February 11, 2021Comments
-
Ankur over 3 years
The following code is giving me a
NullPointerException
. The problem is on the following line:... dataMap.put(nextLine[0], nextLine[6]);
What is strange is that I have run this code without the above line and the call to
nextLine[0]
andnextLine[6]
work exactly as expected - that is they give me back elements of a csv file. I declare and initialise theHashMap
with the codeHashMap<String, String> dataMap = null;
earlier in the method
String[] nextLine; int counter=0; while (counter<40) { counter++; System.out.println(counter); nextLine = reader.readNext(); // nextLine[] is an array of values from the line System.out.println(nextLine[0] + " - " + nextLine[6] +" - " + "etc..."); dataMap.put(nextLine[0], nextLine[6]); } return dataMap; }