我想使用 class<?> datatype 字段对Java对象进行编组/解组 . 如果JAXB上下文已知的类但它不能存储Java数组类,则此方法很有效 .

我的对象:

@XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class MyClass { private Object value; private Class<?> datatype; }

如果我这样做: c.setDatatype(Short.class); 它有效 .
如果我这样做: c.setDatatype(Short[][].class); 它将 <datatype>[[Ljava.lang.Short;</datatype> 存储在XML文件中,但是在解组时数据类型字段为空 .

我将 Short[][].class 添加到JAXBContext中 . 如果我使用XStream,这是有效的 .

我想我可以使用 @XmlJavaTypeAdapter 来处理数组的情况 . 但有更好的方法吗?

谢谢 .