如果在mapper.getChave中找不到它,我需要String 接收空值。返回的是什么。我所做的?如果我只获得nullPointerException
for(String chave : linha.keySet()) {
//Processa chave
String novaChave = mapper.getChave(chave.trim());
if (!(novaChave == null || novaChave.isEmpty())) {
//Processa valor
String novoValor = linha.getString(chave);
temp.append(novaChave, novoValor);
}
else {
extras.append(chave, linha.getString(chave));
}
}
记录
java.lang.NullPointerException
at oknok.validacao.readers.PlanilhaReader.processaAtributosPlanilha(PlanilhaReader.java:237)
第237行是
String novaChave = mapper.getChave(chave.trim());
** UPDATE :第一次循环运行时,我有一个Nullpointer,chave
包含一个值
System.out.println(chave.isEmpty() + "\t" + chave + "\t" + chave.trim());
输出
false Veículo Veículo
答案 0 :(得分:2)
您需要为mapper
以及chave
添加空检查。
if (mapper!= null && chave != null && !"".equals(chave) {
// do something
}
mapper.getChave(chave.trim())
^ ^ possible places for NPE.
答案 1 :(得分:1)
很可能chave
或mapper
的值为null,而您分别在其上调用trim()
和.getChave()
会导致nullpointer
答案 2 :(得分:0)
你需要在修剪它之前检查chave
是否为null 或做其他事情(我假设mapper
已预先初始化且不是< / em> null,但你也应该检查一下)
e.g。
if (chave != null && !"".equals(chave.trim()) {
// now do something
}
您可能会发现使用Apache Commons StringUtils.isNotBlank(String)
之类的内容更容易(更直观)。有关文档,请参阅here。
答案 3 :(得分:0)
linha.keySet()
中有一个空字符串引用。
答案 4 :(得分:0)
按照代码将空字符串更改为“”:您可以将“”更改为您喜欢的任何内容
String novaChave = mapper.getChave((chave == null ? "" : chave).trim());