2016-07-06 3 views
10

주어진 XSD에서 JaxB-Classes를 생성하기 위해 jaxb2-maven-plugin을 사용합니다. 잘 작동합니다. 하지만 이제 생성 된 클래스에서 java.util.Optional을 사용하려고합니다. 그러나 JaxB는 Optionalals없이 Classes를 생성했습니다. 그래서 모든 변수에 대해 Null-Check를해야합니다.java.util.Optional을 사용하여 JaxB-Class를 생성하는 방법은 무엇입니까?

누구나 jaxb2-maven-plugin을 java.util.Optional을 사용하도록 구성해야한다는 것을 알고 있습니까?

도움 주셔서 감사합니다.

+1

바인딩이 어댑터를 사용하는 것은 좋은 선택이 아니다. 왜 nillable = "true"필드를 사용하여 xsd를 풍부하게 만드십시오. –

+0

@Mark에 동의합니다. 생성 된 클래스를 수정하는 것을 피해야합니다. 비슷한 질문을 발견했습니다. 생성 된 클래스를 수정하지 않고도 사용자 지정 어댑터를 사용하는 것이 타당합니다. https://stackoverflow.com/questions/23071450/using-guavas-optional-with-xmlatt – Woody

답변

0

어쩌면 당신은 좀 더 일반적인 것을 찾을 수 있을지 모르지만 이것이 가능한지 확실하지 않습니다. 어쨌든 사용자 정의 어댑터를 선택적으로 정의 할 수 있습니다. 여기

첫 번째 정수

의 예입니다, 그리고 어댑터

public final class IntegerOptionalAdapter extends OptionalAdapter<Integer> 
{ 
} 

을 만들고, 생성 클래스에서 작업

@XmlAttribute 
@XmlJavaTypeAdapter(IntegerOptionalAdapter.class) 
private Optional<Integer> someInteger; 
+0

실제로 옵션 세트를 다음 위치에 저장하는 것은 좋지 않습니다. 전지. getter에서 생성하는 것이 더 좋습니다. –