首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以使用ObjectUtils.identityToString()检查对象为空

可以使用ObjectUtils.identityToString()检查对象为空
EN

Stack Overflow用户
提问于 2018-07-10 19:16:08
回答 3查看 726关注 0票数 0

请找到我的下面的代码,在设置我的bean类属性之前,使用三元运算符检查null。

代码语言:javascript
运行
复制
doc.setCatalog_description(sourceAsMap != null && sourceAsMap.get("catalog_description") != null ? sourceAsMap.get("catalog_description").toString() : null);

有没有其他方法可以简化这段代码,就像下面这样。我只是在使用org.apache.commons.lang3.ObjectUtils;方法进行探索。但我不确定它是否正确。

代码语言:javascript
运行
复制
doc.setCatalog_description(ObjectUtils.identityToString(sourceAsMap.get("catalog_description")));
EN

回答 3

Stack Overflow用户

发布于 2018-07-10 19:27:53

我认为您正在寻找ObjectUtils.toString(Object).方法

代码语言:javascript
运行
复制
if (sourceAsMap != null) {
    final String description = ObjectUtils.toString(sourceAsMap.get("catalog_description"));
    doc.setCatalog_description(description);
}

如果使用的是jdk7或更高版本,则可以使用java.util.Objects.toString(Object).替换该方法

代码语言:javascript
运行
复制
if (sourceAsMap != null) {
    final String description = Objects.toString(sourceAsMap.get("catalog_description"));
    doc.setCatalog_description(description);
}

我不知道sourceAsMap是否可以为空,但如果你设置了几个参数,你应该只检查一次它是否为空。

票数 1
EN

Stack Overflow用户

发布于 2018-07-10 19:38:27

出于可读性和清晰度的考虑,我建议将这部分功能提取到它自己的方法中:

代码语言:javascript
运行
复制
String getDescOrNull(Map<String, Object> sourceAsMap) {
    final String key = "catalog_description";
    if (sourceAsMap == null || !sourceAsMap.containsKey(key)) {
        return null;
    }
    return sourceAsMap.get(key);
}

然后:

代码语言:javascript
运行
复制
doc.setCatalog_description(getDescOrNull(sourceAsMap));
票数 0
EN

Stack Overflow用户

发布于 2018-07-10 19:39:32

在将值设置为我的bean类属性之前,使用三元运算符检查null

因此,我认为您需要从映射中设置多个bean属性。

最好也是最简单的解决方案是在sourceMap上检查一次null条件,然后使用三元运算符设置属性。

代码语言:javascript
运行
复制
 if(sourceAsMap != null){
      doc.setCatalog_description(sourceAsMap.get("catalog_description") != null ? sourceAsMap.get("catalog_description").toString() : null);
      doc.setAnother_description(sourceAsMap.get("another_description") != null ? sourceAsMap.get("another_description").toString() : null);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51263786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档