如何使用setter强制JAXB解组?

如何使用setter强制JAXB解组?,jaxb,Jaxb,在解组时,我需要验证值是否在特定范围内。我计划在setter中添加此验证。如何在解组时强制JAXB使用setter?提前感谢。您需要执行以下操作: 确保映射的是属性(get/set方法),而不是字段(实例变量) 确保您没有在类上使用@xmlacessortype(xmlacesstype.FIELD) 对于您提供的注释,将它们放在get(或set)方法上,而不是字段上 您有一对正确匹配的get/set public String getFoo() { return this.foo;

在解组时,我需要验证值是否在特定范围内。我计划在setter中添加此验证。如何在解组时强制JAXB使用setter?提前感谢。

您需要执行以下操作:

  • 确保映射的是属性(get/set方法),而不是字段(实例变量)
  • 确保您没有在类上使用
    @xmlacessortype(xmlacesstype.FIELD)
  • 对于您提供的注释,将它们放在get(或set)方法上,而不是字段上
  • 您有一对正确匹配的get/set

    public String getFoo() {
        return this.foo;
    } 
    
    public void setFoo(String foo) {
        this.foo = foo;
    }
    
  • 对于集合属性,当对象实例化后第一次调用
    get
    时(即,您没有将其初始化为空集合),仅当集合的值为
    null
    时,才会调用该集合