3
我有一些包使用POJO进行卸载。我想制作一个通用的方法,你可以通过什么样的课程,你会把它放到什么地方。使用Java中的泛型解组XML使用泛型
例如:
pubic class Test<E>
{
E obj;
// Get all the tags/values from the XML
public void unmarshalXML(String xmlString) {
//SomeClass someClass;
JAXBContext jaxbContext;
Unmarshaller unmarshaller;
StringReader reader;
try {
jaxbContext = JAXBContext.newInstance(E.class); // This line doesn't work
unmarshaller = jaxbContext.createUnmarshaller();
reader = new StringReader(xmlString);
obj = (E) unmarshaller.unmarshal(reader);
} catch(Exception e) {
e.printStackTrace();
}
}
}
我上线的错误在上述代码中指出:Illegal class literal for the type parameter E
。当然,E
将来自实际存在的POJO列表。
我该如何做到这一点?
我'假设'reader = ...'下面的行是'type =(Class)unmarshaller.unmarshal(reader);'? –
syy
@Flow Nope。你仍然会使用'obj =(E)unmarshaller.unmarshal(reader)'。你不应该删除'E obj'字段,因为这是存储解组数据的地方。这意味着你应该有2个字段:'type'和'obj'。 –
哦,我明白了。非常感谢你的帮助! – syy