NullPointerException while using put method of HashMap

49,175

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?

Share:
49,175
Ankur
Author by

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, 2021

Comments

  • Ankur
    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] and nextLine[6] work exactly as expected - that is they give me back elements of a csv file. I declare and initialise the HashMap with the code

    HashMap<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;
    }