用于解码 JAXB 对象的 Java 泛型

标签 java xml generics jaxb

我有以下代码将 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;
}

关于用于解码 JAXB 对象的 Java 泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41248307/

相关文章:

Java 防御副本

android - Cardview 内容似乎没有正确加载或充气,没有错误

java - #xD;和#13;读写 XML 文件时

java.lang.Class 泛型和通配符

java - 声纳林特 "Replace this if-then-else statement by a single return statement"

java - Spring MVC 休息 Controller 未调用

c# - 更改用于 XML 序列化的 XmlElement 名称

C++ 模板(在插入方法中)

reactjs - React TSX 文件中的泛型

Java:实现无符号 128 位整数