Я хочу написать csv с помощью библиотеки opencsv
, однако при запуске кода я получаю NullPointerException
.NullPointerException при записи файла csv
public void exportToCSV(ArrayList<Data> list) throws IOException {
log.info("write CSV file");
String writerPath = "C:\\Users\\User\\Desktop\\Output\\output.csv";
CSVWriter writer = new CSVWriter(new FileWriter(writerPath), ';');
//headers
String [] entries = {"ID", "Date"};
writer.writeNext(entries);
List<String[]> data = new ArrayList<String[]>();
for (int m = 0; m < list.size(); m++) {
data.add(new String[] {
list.get(m).getID,
(list.get(m).getDate().toString()==null) ? "null" : list.get(m).getDate().toString(), //Here i get the NullPointerException
});
}
writer.writeAll(data);
writer.close();
}
Я думаю, что getDate()
имеет нулевое значение, какой тип является Timestamp
. Однако почему мое предлагаемое решение не работает в письменной форме String
, когда getDate()
является null
.
Я приветствую ваш ответ!
Почему вы «догадываетесь». в какой строке было выбрано исключение? вы использовали отладчик, чтобы увидеть, что на самом деле является нулевым? – gefei
Потому что getDate() возвращает null, вы не можете вызвать toString() на нем. Duh. –
См. Также ['NullPointerException'] (http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html), где почти самая первая строка документации -« Вызов экземпляра метод нулевого объекта. " –