[英]JAXB: how to make JAXB NOT to unmarshal empty string to 0
我有一個DTO類,其字段如下:
@XmlAttribute
@NotNull
private Integer number = null;
我正在嘗試解組xml等
... number="" ...
我需要nuber字段保持為null,以便拋出驗證異常。 相反,JAXB將其解組為0.如何才能使其正常運行?
可以說,它的行為是正確的。 number=""
並不意味着null,它是一個空字符串,並且JAXB必須嘗試正確處理它,並且它確定與Integer數據類型的空字符串最接近的是零。 如果你想要一個null
,那么應該完全省略number
屬性。
如果要自定義此行為,則需要編寫javax.xml.bind.annotation.adapters.XmlAdapter
的子類,該子類可以按照您希望的方式處理原始String和boundtype之間的轉換(即String和Integer之間)。 然后,通過使用@XmlJavaTypeAdapter
注釋該字段來@XmlJavaTypeAdapter
該適配器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.