提问人:vshah1 提问时间:9/7/2019 最后编辑:Ihor Patsianvshah1 更新时间:9/16/2019 访问量:2025
在 Lambda 表达式中处理 Null 值
Handling Null Values in Lambda Expression
问:
我正在尝试迭代使用 lambda 表达式,在迭代时,我必须使用字段 setter 方法在一个 POJO 中设置值。当 of 中有值时,问题就来了(特别是应该处理 map 字段)。我尝试了很多事情来处理.List
Map
null
List
Map
null
NullPointerException
Employee employee = new Employee();
employee.setEmployeeName(result.getOrDefault("employeeName", "").toString());
employee.setEmployeeName(!StringUtils.isEmpty(result.get("employeeName").toString()) ? result.get("employeeName").toString() : " ");
// when i am using this solution it is not giving null pointer exception
// but if the value is null then it is returning "null" value it means
// null as a string which shouldn't be the expected output.
employee.setEmployeeName(String.valueOf(result.get("employeeName").equals("null") ? "" : result.get("employeeName")));
List<Map<String,Object>> r1 = new ArrayList<Map<String,Object>>();
response.forEach(result -> {
employee.setEmployeeName(result.getOrDefault("employeeName", "").toString());
})
答:
1赞
vshah1
9/16/2019
#1
问题解决了,我使用了可选,如下所示。
Optional.ofNullable(result.get("employeeName")).orElse(" ").toString()
评论
StringUtils.isEmpty
根据其文档,不会返回空指针异常。response
r1
null
NullPointerException