如何使用setter强制JAXB Unmarshal?

时间:2015-04-13 16:16:05

标签: jaxb

在解组时,我需要验证值是否在一定范围内。我打算在setter中添加这个验证。如何在解组时强制JAXB使用setter?提前谢谢。

1 个答案:

答案 0 :(得分:2)

您需要执行以下操作:

  1. 确保映射属性(get / set方法)而不是字段(实例变量)
    1. 确保您没有在课堂上使用@XmlAccessorType(XmlAccessType.FIELD)
    2. 对于注释,您确实提供了将它们放在get(或set)方法而不是字段上。
  2. 您有一个匹配良好的获取/设置对

    public String getFoo() {
        return this.foo;
    } 
    
    public void setFoo(String foo) {
        this.foo = foo;
    }
    
  3. 对于集合属性,只有在实例化对象后首次调用null时,如果它的值为get,则才会调用该集(即,您没有将其初始化为空集合)。