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;
}
¿Fue útil?

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(...)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top