我的工作流程 使用mysql驱动程序执行查询并将结果集保存在arraylist中,并从arraylist中填写excel表中的详细信息(使用Apache poi)
问题 如果arraylist包含null,则在excel表的插入过程中获取空指针异常。
我的代码
resultSet = statement.executeQuery(query);
while (resultSet.next()){
Date lastResponse = resultSet.getDate("lastresponse");
response.add(lastResponse);
}
以上arraylist包含以下值
2017-04-20, 2017-04-25, 2017-04-24, null, 2017-08-03
现在我尝试在excel表中插入上述值(全部)
for (int j = 0; j <= response.size(); j++) {
row = sheet.getRow(j + 2);
cell = row.createCell(1);
cell.setCellValue(Cell.CELL_TYPE_STRING);
cell.setCellValue(response.get(j).toString());
}
运行时获取Exception in thread "main" java.lang.NullPointerException
预期解决方案
希望在相应的单元格中插入空值,或者需要替换连字符号而不是null。
答案 0 :(得分:2)
您的所有代码需求都是空检查。可以通过行
检查nullresponse.get(j)!=null
完成此检查后,您可以根据需要更改代码。
for (int j = 0; j <= response.size(); j++) {
row = sheet.getRow(j + 2);
cell = row.createCell(1);
cell.setCellValue(Cell.CELL_TYPE_STRING);
response.get(j)!=null ? cell.setCellValue(response.get(j).toString()) : cell.setCellValue("Null");
}
答案 1 :(得分:1)
response = response.stream().map(x -> (x == null)? "-":x).collect()