我如何实现一个“变体”类,它将充当Object和JAXB本机支持的类型之间的适配器?
然后我可以在JAXB注释类中使用Object。
因此,我想,我需要在该适配器中存储一个类型ID。
有什么想法吗?
注意:“JAXB本机支持的类型”是指类型如:
所有原始类型,String
,Date
,byte[]
,List<any-JAXB-supported-type>
。
@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 {
// ...
}
}