Я пишу некоторый Java-код в Spring Framework.
У меня есть два компонента: person и person1.Они имеют немного другую структуру, то есть имена переменных для каждого отличаются незначительно.
Я пытаюсь скопировать детали из одного компонента в другой.Я только хочу скопировать значение, если значение не является нулевым.Я видел API под названием BeanUtils, но он будет копировать его независимо от того, является он нулевым или нет.
Вот мой код:
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 узлов, которые нужно скопировать, и это создало бы столько уродливого кода.У кого-нибудь есть лучший способ сделать это?может быть, если я сделаю отображение или что-то, а затем перебрать его?не уверен.
Если нет, кто-нибудь знает, могу ли я заставить BeanUtils запускать копию, не копируя нулевые значения?
Причина в том, что второй компонент, person1, уже имеет набор значений,Я только хочу перезаписать это, если есть новые значения, чтобы перезаписать его.
Как обычно, переменные являются частью гораздо большей системы, и я не могу стандартизировать имена.
Спасибо