Domanda

Il codice seguente mi sta dando un NullPointerException. Il problema è il seguente riga:

... 
dataMap.put(nextLine[0], nextLine[6]);

Quello che è strano è che ho eseguito questo codice senza la linea di cui sopra e la chiamata a nextLine[0] e lavorare nextLine[6] esattamente come previsto - cioè mi danno indietro elementi di un file CSV. Dichiaro e inizializzare il HashMap con il codice

HashMap<String, String> dataMap = null;

in precedenza nel metodo

  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;
}
È stato utile?

Soluzione

HashMap<String, String> dataMap = new HashMap<String,String>();

La variabile dataMap non è inizializzata a questo punto. Si dovrebbe essere sempre un compilatore avvertimento circa questo.

Altri suggerimenti

Dove si Datamap inizializzato? E 'sempre nullo.

Per chiarire, si dichiara la variabile e impostarla a null. Ma è necessario creare un'istanza di una nuova mappa, che si tratti di un HashMap o simili.

per es.

datamap = new HashMap();

(lasciando da parte dei farmaci generici, ecc.)

Datamap viene dichiarata ma non inizializzata. Può essere inizializzato con

Datamap = new HashMap ();

Bene, ci sono tre oggetti accessibili su quella linea. Se nextLine [0] e nextLine [6] non sono nulli, perché la chiamata println sopra funzionato, che lascia Datamap. Hai fatto Datamap = new HashMap (); somwehere?

Ehm, che cosa esattamente do che ci si aspetta quando si esegue questa operazione?

HashMap<String, String> dataMap = null;
...
dataMap.put(...)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top