Java:通用JAXB序列化

时间:2010-08-23 15:57:39

标签: java generics serialization jaxb

我正在寻找一种使用JAXB XML Serialization在Java中序列化对象的通用方法。我想要这样的东西:

public static <T> String serializeUsingJAXB(T entity) {
    JAXBContext context = JAXBContext.newInstance(T.class);
    // ...
}

但是,由于类型擦除,T.class似乎不起作用。

会是什么?

4 个答案:

答案 0 :(得分:6)

尝试entity.getClass()

答案 1 :(得分:1)

public static <T> String serializeUsingJAXB(
    T entity,
    Class< ? extends T> clazz
)
{
    JAXBContext context = JAXBContext.newInstance( clazz );
    // ...
}

答案 2 :(得分:1)

您可能还会考虑:

public static <T> String serializeUsingJAXB(T entity) { 
    StringWriter writer = new StringWriter();
    javax.xml.bind.JAXB.marshal(entity, writer);
    return writer.toString();
} 

有关详细信息,请参阅javax.xml.bind.JAXB课程

答案 3 :(得分:0)

显而易见的答案是:

public static String serializeUsingJAXB(Object entity, JAXBContext context) {
    // ...
}