2016-07-06 45 views
10

我使用jaxb2-maven-plugin從給定的XSD生成JaxB類。 它工作正常。 但是現在我想在生成的類中使用java.util.Optional。但是JaxB生成了沒有選項的類。所以我不得不對每個變量進行空值檢查。如何使用java.util.Optional生成JaxB類?

有沒有人知道jaxb2-maven-plugin是如何配置使用java.util.Optional的?

感謝您的幫助!

+1

工作生成的類使用該適配器不是很好的選擇。爲什麼不用nillable =「true」字段來豐富xsd。 –

+0

我同意@Mark你應該避免修改任何生成的類。 我發現了一個類似的問題,它似乎是可行的使用自定義適配器,而無需修改生成的類:https://stackoverflow.com/questions/23071450/using-guavas-optional-with-xmlattribute – Woody

回答

0

也許你可以找到更通用的東西,但我不確定這是否可能。 無論如何,你仍然可以定義自定義適合你想成爲可選類型的適配器。

這裏是整數

首先的一個例子,創建一個適配器

public final class IntegerOptionalAdapter extends OptionalAdapter<Integer> 
{ 
} 

然後在你的綁定

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

這實際上不是一個好主意,領域。最好在獲得者中創建它們。 –