Исключение NullPointerException при использовании метода put HashMap
следующий код дает мне NullPointerException
. Проблема находится на следующей строке:
...
dataMap.put(nextLine[0], nextLine[6]);
что странно, что я запустил этот код без вышеуказанной строки и вызова nextLine[0]
и nextLine[6]
работать точно так, как ожидалось - то есть они возвращают мне элементы csv-файла. Я объявляю и инициализирую HashMap
код
HashMap<String, String> dataMap = null;
ранее в методе
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;
}
5 ответов
HashMap<String, String> dataMap = new HashMap<String,String>();
код dataMap
переменная не инициализируется в данный момент. Вы должны получить предупреждение компилятора об этом.
где инициализируется datamap ? Он всегда нулевой.
уточнить, вы объявляете переменную и присвоить ей значение null. Но вам нужно создать экземпляр новой карты, будь то HashMap или аналогичный.
например
datamap = new HashMap();
(оставляя в стороне обобщения и т. д.)
dataMap объявлен, но не инициализирован. Его можно инициализировать с помощью
datamap = новый HashMap();
ну, на этой линии есть три объекта доступа. Если nextLine[0] и nextLine[6] не являются null, потому что вызов println выше работал, то это оставляет dataMap. Вы сделали dataMap = new HashMap (); somwehere?
Эм, что именно do вы ожидаете, когда вы делаете это?
HashMap<String, String> dataMap = null;
...
dataMap.put(...)