gpt4 book ai didi

java - JAXB:如何使 JAXB 不将空字符串解码为 0

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:18:55 36 4
gpt4 key购买 nike

我有一个包含如下字段的 DTO 类:

@XmlAttribute
@NotNull
private Integer number = null;

我正在尝试解码 xml,例如

...  number=""  ...

我需要 nuber 字段保持为空,以便抛出验证异常。相反,JAXB 将其解码为 0。我怎样才能让它正常运行?

最佳答案

有争议,它行为正确。 number="" 并不意味着 null,它是一个空字符串,JAXB 必须尝试正确处理它,并且它决定对于 Integer 数据类型最接近空字符串的是零。如果您想要一个 null,那么应该完全省略 number 属性。

如果你想定制这个行为,你需要写一个 javax.xml.bind.annotation.adapters.XmlAdapter 的子类,它可以处理原始字符串和绑定(bind)类型之间的转换(即在字符串和整数)以你想要的方式。然后,您通过使用 @XmlJavaTypeAdapter 注释该字段来连接该适配器。

关于java - JAXB:如何使 JAXB 不将空字符串解码为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133250/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com