Java 布尔标志的JAXB xmlelement默认值

Java 布尔标志的JAXB xmlelement默认值,java,rest,jaxb,jersey,jetty,Java,Rest,Jaxb,Jersey,Jetty,我有一个JAXB类,如下所示,它在 POST方法。它有一个名为isTrue的参数,它是一个 可选参数,参数的默认值应为true 当其未在REST请求中传递时。但是当我试图 调用该方法,并且不向其传递set as的默认值 false。有人能告诉我问题的原因吗?我 当我没有为isTrue传递任何值时,需要将true作为值。 我使用的是使用jersey的RESTWebServices @XmlRootElement(name = "param") public class Para

我有一个
JAXB
类,如下所示,它在
POST
方法。它有一个名为isTrue的参数,它是一个 可选参数,参数的默认值应为true 当其未在
REST
请求中传递时。但是当我试图 调用该方法,并且不向其传递set as的默认值
false
。有人能告诉我问题的原因吗?我 当我没有为
isTrue
传递任何值时,需要将
true
作为值。 我使用的是使用jersey的RESTWebServices

@XmlRootElement(name = "param")
public class Param {
     private boolean isTrue;

     @XmlElement(required = false, name = "isTrue", defaultValue = "true")
     public boolean isTrue() {
        return isTrue;
     }

     public void setTrue(boolean isTrue) {
        this.isTrue = isTrue;
     }
}

提前感谢

这实际上是一个已知问题,请参阅

基本上,上面的文章描述了一个JAXB插件,如果需要,它可以显式地将默认布尔变量初始化为true。由于您没有生成JAXB代码并手动编写,因此只需显式地将参数初始化为true:

private boolean isTrue = true;

这就是上面提到的插件作为解决方案所做的。

谢谢你的回复。我认为这是不允许的。因为我们在@XmlElement中指定defaultValue=“true”,它应该能够将true作为参数,对吗?你能告诉我我这里缺少什么吗?同意,我本来希望你能工作。您是否尝试过使用字段访问器类型?我将用一个例子来更新我的答案。这实际上是一个已知的问题,请参阅这里的背景,这里提供的解决方案是显式地将值设置为true,就像我的第一个答案一样。我提供的url是通过插件实现的,但是您可以手动完成,因为您是自己编写代码的。