为什么jaxb会在下面生成一个名为Result
的类型参数?
生成像这样的getter / setter是不是更清晰:
protected Result result;
public void setResult(Result value) {
this.approveRequestResult = (Result value);
}
public Result getResult() {
return result;
}
此文件由JavaTM Architecture for XML Binding(JAXB)参考实现生成:
protected JAXBElement<Result> result;
public void setResult(JAXBElement<Result> value) {
this.approveRequestResult = ((JAXBElement<Result> ) value);
}
public JAXBElement<Result> getResult() {
return result;
}
也许这是一个我不知道的设计模式?
答案 0 :(得分:1)
当JAXB自身的值无法正确表示XML表示时,它将生成类型为JAXBElement
的字段/属性。以下是一些案例:
xsd:choice
结构,其中属性可以对应于相同类型的不同XML元素(即foo
和bar
)(即xsd:string
)。如果值为Hello World
,您会将其编组为元素foo
或bar
。