NullPointerException durante el uso del método put HashMap
-
09-09-2019 - |
Pregunta
El siguiente código me está dando un NullPointerException
. El problema está en la línea siguiente:
...
dataMap.put(nextLine[0], nextLine[6]);
Lo que es extraño es que he ejecutar este código sin la línea anterior y la llamada a nextLine[0]
y el trabajo nextLine[6]
exactamente como se espera - es decir que me dan vuelta elementos de un archivo csv. Declaro e inicializar HashMap
con el código
HashMap<String, String> dataMap = null;
anteriormente en el método
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;
}
Solución
HashMap<String, String> dataMap = new HashMap<String,String>();
La variable de dataMap
no se ha inicializado en este punto. Que debería estar recibiendo un compilador de advertencia acerca de eso.
Otros consejos
Cuando se inicializa mapa de datos? Siempre es nula.
Para aclarar, se declara la variable y la puso en nulo. Pero es necesario crear una instancia de un nuevo mapa, si se trata de un HashMap o similar.
por ejemplo.
datamap = new HashMap();
(dejando a un lado los genéricos, etc.)
Datamap se declara pero no inicializado. Puede ser inicializado con
Datamap = new HashMap ();
Bueno, hay tres objetos que se accede en esa línea. Si nextLine [0] y nextLine [6] no son nulas, ya que la llamada println anteriormente trabajó, a continuación, deja que Datamap. ¿Usted hizo Datamap = new HashMap (); somwehere?
Um, ¿qué es exactamente hacer se puede esperar cuando se hace esto?
HashMap<String, String> dataMap = null;
...
dataMap.put(...)