XML을 JAXB pojos로 읽고 필드를 엔터티 pojos에 병합하려고합니다. 그러나 XML의 값이 null 인 경우 기존 값을 덮어 쓰지 않으려합니다 (즉, 값이 XML에 존재하지 않음). 그래서 지금과 같은 코드의 긴 세트가 :이, 추악한 잡음이와 수중 음파 탐지기는 복잡성을에 대해 비명필드를 복사하지만 null을 건너 뛰는 세련된 방법
if (addressDetails.getNAME1() != null) {
org.setName1(addressDetails.getNAME1());
}
if (addressDetails.getNAME2() != null) {
org.setName2(addressDetails.getNAME2());
}
if (addressDetails.getNAME3() != null) {
org.setName3(addressDetails.getNAME3());
}
. 이 일에 대해 어떻게 생각하세요? 엔티티 클래스 (세부, 보일러)
내가 읽고없이 뭔가를 목표로하고 있습니다에
- (느린를 안전하게 입력하지) : 마음에 와서 것들 많은 여분의 코드.
'setIfNotNull'과 같은 유틸리티 메소드를 제공하면 자세한 표시를 줄일 수 있습니다. 그러면 재산을 두 배로 줄여 줄 것입니다. 이 특정 기능을 가진 클래스가 존재하는지는 모르지만 구아바, 아파치 커먼즈 또는 스프링의 BeanUtils에 뭔가있을 수 있습니다. 이 분야의 반복에 관해서는 반성이 유일한 길일 것입니다. BeanUtils도 여기에서 도움이 될 수 있습니다. 'copyProperties'는 비슷하지만 null 검사를하지 않습니다. – toniedzwiedz
* 기존 * 객체를 덮어 쓰려면 비 정렬 화를 작성하십시오. 그것은 최적 일 것입니다. –
@JoopEggen 좀 더 구체적 일 수 있습니까? – vertti