【发布时间】:2018-12-18 05:08:36
【问题描述】:
在将值设置为我的 bean 类属性之前,请先找到我下面的代码,该代码使用三元运算符检查 null。
doc.setCatalog_description(sourceAsMap != null && sourceAsMap.get("catalog_description") != null ? sourceAsMap.get("catalog_description").toString() : null);
有没有其他方法可以简化如下代码。我只是通过使用org.apache.commons.lang3.ObjectUtils; 方法进行探索。但不确定它是否正确。
doc.setCatalog_description(ObjectUtils.identityToString(sourceAsMap.get("catalog_description")));
【问题讨论】:
-
在您提出的解决方案中,如果 sourceMap 为 null,则会发生 NullPointerException。
-
如果你想处理 sourceMap 中缺失的键并返回一个默认值,那么 java 8 提供了这个。使用
sourceMap.getOrDefault(key, defaultVal) -
您是否正在寻找一种在满足所有条件时提取catalog_description 的简短方法?
ObjectUtils.identityToString将根据给定对象的类名和哈希码返回一个非常技术性的描述。前者和后者是不同的东西。