在数据库调用之前,我正在使用其用于数据库更新调用的setter方法将一些数据从地图设置到对象中。现在地图可能没有一些数据。
所以我想知道的是,在向对象添加数据之前,不是添加代码来检查每个字段的null,有没有更好的方法通过在调用setter方法之前减少用于检查空值的IF数量来实现这一点
我现在有类似下面的条件
if(valueMap.get(ATTRIBUTE1_VALUE) != null){
object.setAttribute1Value(valueMap.get(ATTRIBUTE1_VALUE));
}
if(valueMap.get(ATTRIBUTE2_VALUE) != null){
object.setAttribute2Value(valueMap.get(ATTRIBUTE2_VALUE));
}
if(valueMap.get(ATTRIBUTE3_VALUE) != null){
object.setAttribute3Value(valueMap.get(ATTRIBUTE3_VALUE));
}
if(valueMap.get(ATTRIBUTE4_VALUE) != null){
object.setAttribute4Value(valueMap.get(ATTRIBUTE4_VALUE));
}
if(valueMap.get(ATTRIBUTE5_VALUE) != null){
object.setAttribute5Value(valueMap.get(ATTRIBUTE5_VALUE));
}
一种方法显然是使用Reflection,但我想知道是否还有其他方法可以做到这一点。
答案 0 :(得分:0)
请注意,您为每个分支执行两次get(ATTRIBUTE1_VALUE)
调用。
而只是在containsKey(ATTRIBUTE1_VALUE)
检查中执行if
。
如果填充valueMap
的逻辑没有为键添加null,那么这很好。
*确定null可以在哪里生成并在那里停止它,而不是像在这里发生的那样在堆栈中进一步处理它。