JAXB构造函数注入

Ext*_*der 5 java customization jaxb constructor-injection

我想知道如何使JAXB编译器使我的XML模式中的某些元素在java类定义中声明为final,我也希望能够控制不同的构造函数,因为我想要一个构造函数可以使用类中包含的完整参数列表以及JAXB所需的默认私有构造函数来创建对象.

有帮助吗?

谢谢.

这是我想要做的一个例子:

<xs:complexType name="mycomplex">
    <xs:all>
        <xs:element name="myboolean" type="xs:boolean"/>
    </xs:all>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

现在生成的代码看起来像

public class mycomplex
{
        protected boolean myboolean;

        public boolean getMyboolean() { return myboolean; }
        public void setMyboolean(boolean b) { this.myboolean = b; }
}
Run Code Online (Sandbox Code Playgroud)

但我想编辑架构使其看起来像:

public class mycomplex
{
        protected final boolean myboolean;

        public mycomplex(boolean b) { this.myboolean = b; }

        public boolean getMyboolean() { return myboolean; }
}
Run Code Online (Sandbox Code Playgroud)

这可以实现吗?

小智 0

我已经用另一种方式解决了这个问题。我正在创建一个工具,它将编辑生成的 java 源代码文件,并添加/删除我需要的内容。有关更多信息,请参阅:使用 Eclipse AST