Я никогда раньше не использовал отражения и пытаюсь сделать что-то, что, я не уверен, возможно.По сути, я пытаюсь написать метод, который принимает Object в качестве параметра, а затем пытается маршалировать этот объект независимо от его типа.Я не могу понять, как получить тип для использования при создании экземпляра универсального объекта JAXBElement.Это возможно?Есть идеи?Моя попытка следующая:
String marshalObject(Object obj) {
Class c = obj.getClass();
Type t = (Type) c;
QName _QNAME = new QName("http://www.acme.com/ImportExport", c.getName());
StringWriter sw = new StringWriter();
try {
ObjectFactory of = new ObjectFactory();
JAXBElement<?> jaxElement = new JAXBElement<t>(_QNAME, c, null, obj);
JAXBContext context = JAXBContext.newInstance( c );
Marshaller m = context.createMarshaller();
m.marshal( jaxElement, sw );
} catch( JAXBException jbe ){
System.out.println("Error marshalling object: " + jbe.toString());
return null;
}
return sw.toString();
}