是否可以将带有JAXB注释的类实例封送 为其超类 (这也是一个具有JAXB注释的类)?
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "BenamningTYPE", propOrder = {"benamningId"})
@XmlSeeAlso({MoreDetailedBenamningTYPE.class})
public class BenamningTYPE {
...
@XmlElement(name = "BenamningId", required = true)
protected IdentifierTYPE benamningId;
...
}
和扩展类型:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MoreDetailedBenamningTYPE", propOrder = {"modifyDetails"})
public class MoreDetailedBenamningTYPE extends BenamningTYPE {
...
@XmlElement(name = "ModifyDetails", required = true)
protected ModifyDetailsTYPE modifyDetails;
...
}
因此,如果出现这种情况:
BenamningTYPE b = new MoreDetailedBenamningTYPE();
...
然后我想将 实例 b 作为 BenmaningTYPE封送, 以获取
<BenmaningTYPE>
...
</BenmaningTYPE>
而且 不是 :
<MoreDetailedBenamningTYPE>
...
</MoreDetailedBenamningTYPE>
如果可能的话,元帅的调用会是什么样子?
我没有检查过,但我会先尝试:
new JAXBElement(new QName("BenmaningType"),
BenManingTYPE.class, moreDetailedBenmaningTYPEInstance)
如果要从XML模式生成类,请同时检查copyable插件。您可以将数据从的实例复制MoreDetailedBenamningTYPE
到该实例BenmaningTYPE
并进行封送处理。
还有更多的可能性,但是它们要复杂一些。
问题内容: 我所拥有的是一组表示消息类型的Java类(接近25个)。它们都继承自我想抽象的Message类。每种消息类型都会在Message超类提供的集合中添加一些其他字段。 我正在使用RESTeasy实现一些RESTful Web服务,并希望具有以下方法: 而不是使用25种单独的persist方法,每种方法都针对特定的消息类型进行了量身定制。 目前,我已经为Message类添加了如下注释: 然后
问题内容: 考虑这种情况。 有地块,有的是住宅用地,有的是商业用地。 也有所有者。但是所有者只能购买一块土地,并且可以是住宅或商业用地。 所以,这是我的代码。 一切运作良好,但是当我打电话 ,我期待或实例,这样,我可以通过采取适当的操作符。但是它不能同时满足这两个条件! 我究竟做错了什么? 问题答案: 您没有使用多态,它在JPA环境中的危害更大。 观察到此行为的原因是由于Hibernate使用了代
我有一个抽象类A,有两个子类B和C。A看起来像这样: 乙: C: 如何创建 JAXB 上下文: 当我传入符合抽象类A但具有属性B的XML时,我希望JAXB能够将其解组为B类型的对象(如果属性C存在,C也是如此)。目前发生的情况是,它试图将所有XML字符串解组到C语言,并且只解组到C语言,这导致了一个ClassCastException。 我尝试在根节点上将子类指定为类型——例如: 但这并不能解决问
问题内容: 我正在创建一个类及其子类,需要在其中调用父级的静态方法以返回子级实例。 问题答案: 该静态方法被调用,其值是类对象,子类,你把它称为后的构造。因此,您可以使用实例化它:
问题内容: 我有一个SOAPMessage对象。我想解析并将其转换为一组Jaxb类。我如何将消息转换为Jaxb可以解组的格式? javax.xml.bind.Unmarshaller.unmarshal(??) 问题答案: SOAP消息的主体包含实际数据及其要解组的位。您可以执行以下操作:
假设我有以下代码 然而,现在我希望能够将一个超类对象传递给子类构造函数。我该怎么做? 基本上,我想这样做。。。 但是如果超类更复杂,我不想在super()调用中添加每个值。相反,我只想传入一个已经存在的对象,并将其用作超类。 我想这么做。。。 但我不确定这是否被允许? 如果我在超类定义中添加一个构造函数,似乎我可以完成上面的工作。但那会是什么样子呢?