Java JAXB:如何实现与JAXB兼容的变体包装类?
如何实现一个“variant”类,作为对象和JAXB本机支持的类型之间的适配器 然后,我可以在JAXB注释类中使用对象 因此,我想,我需要在适配器中存储一个类型ID 有什么想法吗 注意:对于“JAXB本机支持的类型”,我指的是如下类型:Java JAXB:如何实现与JAXB兼容的变体包装类?,java,jaxb,variant,Java,Jaxb,Variant,如何实现一个“variant”类,作为对象和JAXB本机支持的类型之间的适配器 然后,我可以在JAXB注释类中使用对象 因此,我想,我需要在适配器中存储一个类型ID 有什么想法吗 注意:对于“JAXB本机支持的类型”,我指的是如下类型: 所有基本类型,字符串,日期,字节【】,列表 使用场景 变异类思想伪码 适配器类(普通) 类VariantAdapter扩展了XmlAdapter{ @凌驾 公共对象封送处理(VariantObject arg0)引发异常{ // ... } @凌驾 公共Vari
所有基本类型,
字符串
,日期
,字节【】
,列表
使用场景
变异类思想伪码
适配器类(普通)
类VariantAdapter扩展了XmlAdapter{
@凌驾
公共对象封送处理(VariantObject arg0)引发异常{
// ...
}
@凌驾
公共VariantObjectUnmarshal(对象arg0)引发异常{
// ...
}
}
这已经存在:请参阅
或对于集合和地图:
不起作用,请参见:
@XmlType
class SomeClass {
@XmlJavaTypeAdapter(VariantAdapter.class) // WITH OR WITHOUT?
@XmlElement
private Object somePrimitive = null;
// ...
}
@XmlRootElement
@XmlType
class Variant {
@XmlAttribute
private final String typeID;
@XmlAttribute
private final String rawXML;
// ...
}
class VariantAdapter extends XmlAdapter<Object, Variant> {
@Override
public Object marshal(VariantObject arg0) throws Exception {
// ...
}
@Override
public VariantObject unmarshal(Object arg0) throws Exception {
// ...
}
}