Java JAXB:具有泛型的多态性

Java JAXB:具有泛型的多态性,java,generics,jaxb,jersey,polymorphism,Java,Generics,Jaxb,Jersey,Polymorphism,我正在尝试使用JAXB(泽西岛内部)对泛型进行多态性: @XmlRootElement 公开课表演{ @XmlAnyElement 私有列表测量; } @XmlJavaTypeAdapter(MeasurementAbstract.Adapter.class) 公共接口测量 扩展可序列化{ D getDate(); 无效设定日期(D日期); V getValue(); 无效设定值(V值); } @xmltransive @XmlAccessorType(XmlAccessType.FIELD

我正在尝试使用JAXB(泽西岛内部)对泛型进行多态性:

@XmlRootElement
公开课表演{
@XmlAnyElement
私有列表测量;
}
@XmlJavaTypeAdapter(MeasurementAbstract.Adapter.class)
公共接口测量
扩展可序列化{
D getDate();
无效设定日期(D日期);
V getValue();
无效设定值(V值);
}
@xmltransive
@XmlAccessorType(XmlAccessType.FIELD)
@XMLSEEAL({MeasurementStringDouble.class,MeasurementStringInteger.class})
公共抽象类measurementstract实现了IMeasurement{
@XmlElement
保护日期;
@XmlElement
保护V值;
静态类适配器扩展了XmlAdapter{
公共i测量解组(measurementstract m){return m;}
公共度量值管理器(i度量值v){return(度量值)v;}
}
}
@XmlRootElement
公共类MeasurementStringDouble扩展了MeasurementAbstract{}
@XmlRootElement
公共类MeasurementStringInteger扩展了measurementablestract{}
我有一个错误:

严重:映射到响应的异常:500(内部服务器错误) javax.ws.rs.WebApplicationException:javax.xml.bind.MarshalException- 链接异常:[javax.xml.bind.JAXBException:class org.test.jaxb.MeasurementStringDouble及其任何超类都不是 在这方面是已知的。]


我找到了解决这个问题的方法:

@XmlRootElement
公开课表演{
@XmlElementWrapper(name=“measurementsPerformance”)
@XmlElements({
@xmlement(name=“measurement”,type=MeasurementStringDouble.class),
@XmlElement(name=“measurement”,type=MeasurementStringInteger.class)})
私有列表测量;
}
公共接口IMeasurement扩展了可序列化{
D getDate();
无效设定日期(D日期);
V getValue();
无效设定值(V值);
}
@xmltransive
公共抽象类MeasurementAbstract实现IMeasurement,可序列化{
保护日期;
保护V值;
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
公共类MeasurementStringDouble扩展了measurementstract{
@XmlElement
@凌驾
公共字符串getDate(){
返回日期;
}
@XmlElement
@凌驾
公共双getValue(){
返回值;
}
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
公共类MeasurementStringInteger扩展了measurementstract{
@XmlElement
@凌驾
公共字符串getDate(){
返回日期;
}
@XmlElement
@凌驾
公共整数getValue(){
返回值;
}
}
此解决方案的缺点是在子类中复制getter/setter