DBコールの前に、DB更新呼び出しのセッターメソッドを使用して、マップからオブジェクトにいくつかのデータを設定しています。現在、地図にはデータがない場合があります。より良い方法でセッターアクションのnull条件を処理する
私が知りたいことは、オブジェクトにデータを追加する前に各フィールドのnullをチェックするコードを追加するのではなく、setterを呼び出す前にnull値をチェックする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));
}
一つの方法は、明らかにリフレクションを使用していましたが、私もこれを行うには、他の方法があるかどうかを知りたいです。
現在のコードを表示してください –
なぜ値を設定する前にnullをチェックしていますか?これらのセッターを含むクラスのインスタンス変数はプリミティブ型ですか?はいの場合は、ラッパータイプに変更しないでください。 object.setXxx(null)は何の効果もないので、なぜnullをチェックするのですか?なぜセッターに電話をしてみませんか? – CKing
実際に私はDB更新を実行するためにこれらの値を設定しています。私は、hibernateを使用してエンティティオブジェクトを取得し、私はDBに受信データを更新する必要があります。 object.setXXX(null)は例外を出すことはありませんが、データベース内のそのフィールドをNULLに更新します。これは不要です。だから、nullをチェックすることは、マップにはないフィールドについてはここでは簡単です。 – Raghav