私はSpring FrameworkでいくつかのJavaコードを書いています。
person と person1 の 2 つの Bean があります。これらは構造がわずかに異なります。つまり、それぞれの変数名がわずかに異なります。
ある Bean から別の Bean に詳細をコピーしようとしています。値がnullでない場合にのみ値をコピーしたい。BeanUtils という API を見たことがありますが、これは null かどうかに関係なくコピーされます。
これが私のコードです:
if (person != null) {
if (person.getAddressDetails() != null) {
if (person.getAddressDetails().getStreetNumber() != null) {
person1.getAddressDetails().setStreetNo(person.getAddressDetails().getStreetNumber());
}
if (person.getAddressDetails().getStreetName() != null) {
person1.getAddressDetails().setStreetName(person.getAddressDetails().getStreetName());
}
}
if (person.getHomeDetails() != null) {
if (person.getHomeDetails().getPhoneNumber() != null) {
person1.getHomeDetails().setSPhoneNo(person.getHomeDetails().getPhoneNumber());
}
}
}
コピーする必要がある約 40 のノードがあり、これにより非常に醜いコードが作成されます。誰かがこれを行うためのより良い方法を持っていますか? 多分私がマッピングか何かを作ってそれをループしたら?わからない。
そうでない場合、null 値をコピーせずに BeanUtils にコピーを実行させることができるかどうかは誰にもわかりませんか?
理由は、2 番目の Bean である person1 にすでに多数の値があるためです。上書きする新しい値がある場合にのみ、それを上書きしたいと思います。
いつものように、変数ははるかに大きなシステムの一部であり、名前を標準化することはできません。
ありがとう