使用HashMap的put方法时出现NullPointerException

Ank*_*kur 19 java hashmap nullpointerexception

以下代码给了我一个NullPointerException.问题出在以下几行:

... 
dataMap.put(nextLine[0], nextLine[6]);
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我没有上面的代码运行这段代码,并且调用nextLine[0]nextLine[6]完全按预期工作 - 这就是它们给了我一个csv文件的元素.我HashMap用代码声明并初始化

HashMap<String, String> dataMap = null;
Run Code Online (Sandbox Code Playgroud)

在方法的早期

  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;
}
Run Code Online (Sandbox Code Playgroud)

小智 35

HashMap<String, String> dataMap = new HashMap<String,String>();
Run Code Online (Sandbox Code Playgroud)

此时您的dataMap变量未初始化.您应该收到编译器警告.


Bri*_*new 5

数据图初始化在哪里?它始终为空.

为了澄清,您声明变量并将其设置为null.但是你需要实例化一个新的Map,无论它是HashMap还是类似的.

例如

datamap = new HashMap();
Run Code Online (Sandbox Code Playgroud)

(抛开仿制药等)