Vor einem DB-Aufruf setze ich einige Daten aus einer Map in ein Objekt, indem ich die Setter-Methoden für den DB-Aktualisierungsaufruf verwende. Jetzt enthält die Karte möglicherweise keine Daten mehr. Nun möchte ich wissen, dass es anstelle des Hinzufügens von Code zum Überprüfen von NULL für jedes Feld vor dem Hinzufügen von Daten zu dem Objekt bessere Möglichkeiten gibt, dies zu tun, indem die Anzahl der IF zum Überprüfen von Nullwerten reduziert wird, bevor Setter aufgerufen wird Methoden.Nullbedingungen für Setter-Aktion besser verarbeiten
Ich habe Bedingungen wie unten jetzt
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));
}
Eine Möglichkeit, offensichtlich Reflexion verwendet wird, aber ich möchte wissen, ob es noch andere Möglichkeiten, um auch dies zu tun.
Bitte zeigen Sie Ihren aktuellen Code an –
Warum prüfen Sie vor dem Setzen des Wertes auf Null? Sind die Instanzvariablen in der Klasse, die diese Setter enthält, primitive Typen? Wenn ja, warum nicht zu Wrappertypen ändern. object.setXxx (null) wird sowieso keinen Effekt haben, also warum nach null suchen? Warum nicht gleich die Setter anrufen? – CKing
tatsächlich setze ich diese Werte, um DB Update durchzuführen. Ich habe ein Entity Objekt mit Hibernate geholt und ich muss die eingehenden Daten auf DB aktualisieren. object.setXXX (null) gibt keine Ausnahme, aber das wird dieses Feld auf NULL in der Datenbank aktualisieren, was ich nicht will. Das Überprüfen von Null ist hier also für jedes Feld, das nicht in der Karte vorhanden ist, trivial. – Raghav