试图通过这里的类转换:
代码:
final JAXBContext securityContext = JAXBContext.newInstance(Securities.class);
final Securities securities = (Securities) securityContext.createUnmarshaller().unmarshal(new StreamSource(new StringReader(sourceMessage.getPayload())));
错误:
javax.xml.bind.JAXBElement cannot be cast to com.model.Securities
不知道我做错了什么,任何建议都很好。
谢谢
1条答案
按热度按时间ax6ht2ek1#
unmarshaller.unmarshal(source)
返回Object
引用。被引用对象的实际类型显然是javax.xml.bind.JAXBElement
。com.model.Securities
(这是从哪里来的?)不在JAXBElement的继承层次结构中(实际上,只有Object
作为唯一的超类;另外它是一个generic type),所以除了抛出ClassCastException之外没有其他选择:抛出表示代码试图将一个对象强制转换到它不是示例的子类。