Arraylist替换java中的null值

时间:2018-01-29 13:16:29

标签: java arraylist apache-poi

我的工作流程 使用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。

2 个答案:

答案 0 :(得分:2)

您的所有代码需求都是空检查。可以通过行

检查null
response.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()