簡體   English   中英

以更好的方式處理setter操作的null條件

[英]Handling null conditions for setter action in a better way

在數據庫調用之前,我使用其用於數據庫更新調用的setter方法將一些數據從地圖設置為對象。 現在地圖可能沒有一些數據。

所以我想知道那是什么,而不是添加代碼來將數據添加到對象前檢查空每個字段,有沒有更好的方法,通過減少IF的數量調用setter方法之前檢查空值做到這一點。

我現在有類似下面的條件

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,但我想知道是否還有其他方法可以做到這一點。

請注意,您為每個分支執行兩次get(ATTRIBUTE1_VALUE)調用。

而是在if檢查中執行containsKey(ATTRIBUTE1_VALUE)

如果填充valueMap的邏輯沒有為鍵添加null,這很好。

*確定null可以在哪里發生並在那里停止它,而不是像在這里發生的那樣在堆棧中進一步處理它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM