JAXB:如何使JAXB NOT将空字符串解组为0
我有一个DTO类,其字段如下:
@XmlAttribute @NotNull private Integer number = null;
我正在尝试解组xml等
... number="" ...
我需要nuber字段保持为null,以便抛出validationexception。 相反,JAXB将其解组为0.如何才能使其正常运行?
可以说,它的行为是正确的。 number=""
并不意味着null,它是一个空字符串,并且JAXB必须尝试正确处理它,并且它确定与Integer数据类型的空字符串最接近的是零。 如果你想要一个null
,那么应该完全省略number
属性。
如果要自定义此行为,则需要编写javax.xml.bind.annotation.adapters.XmlAdapter
的子类,该子类可以按照您希望的方式处理原始String和boundtype之间的转换(即String和Integer之间)。 然后,通过使用@XmlJavaTypeAdapter
注释该字段来@XmlJavaTypeAdapter
该适配器。