我有以下代码将xml解码到Java对象中。我想看看是否可以通过使用Java泛型而不是将对象类型用作返回值来增强此代码。

protected static <T> Object unmarshall(String xml, Class<T> clazz)
        throws JAXBException {
    JAXBContext jc = JAXBContext.newInstance(clazz);
    Unmarshaller unmarshaller = jc.createUnmarshaller();
    Object obj = unmarshaller.unmarshal(new StringReader(xml));
    return obj;
}

有什么建议。

最佳答案

是的,您可以稍微增强一下代码:

protected static <T> T unmarshall(String xml, Class<T> clazz)
        throws JAXBException {
    JAXBContext jc = JAXBContext.newInstance(clazz);
    Unmarshaller unmarshaller = jc.createUnmarshaller();
    T obj = clazz.cast(unmarshaller.unmarshal(new StringReader(xml)));
    return obj;
}

09-04 15:13