Java: общая сериализация JAXB - PullRequest
2 голосов
/ 23 августа 2010

Я ищу общий способ сериализации объектов в Java с использованием XML-сериализации JAXB. Я хотел бы иметь что-то вроде этого:

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

Однако, похоже, что из-за стирания типа T.class не работает.

Что будет?

Ответы [ 4 ]

6 голосов
/ 23 августа 2010

Попробуйте entity.getClass()

1 голос
/ 23 августа 2010

Вы также можете рассмотреть:

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 class

1 голос
/ 23 августа 2010
public static <T> String serializeUsingJAXB(
    T entity,
    Class< ? extends T> clazz
)
{
    JAXBContext context = JAXBContext.newInstance( clazz );
    // ...
}
0 голосов
/ 23 августа 2010

Очевидный ответ:

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