使用JAXB unmarshal(解析XML文档的时候),遇到@XmlElements注解的元素,无法正确转型。
一:我的定义1.类关系abstractclassE(){}classTestDownloadRequestextendsE()classAcctInfoUploadReq...
一:我的定义
1.类关系
abstract class E (){}
class TestDownloadRequest extends E()
class AcctInfoUploadRequest extends E()
2.
class Envelope {
@XmlElements({
@XmlElement( type=TestDownloadRequest.class ),
@XmlElement(type=AcctInfoUploadRequest.class)
})
private E Body;
public E getBody() {
return Body;
}
public void setBody(E Body) {
this.Body = Body;
}
}
3.test程序
Envelope hotelObj = resultBinder.fromXml(retXml); //此处 封装解析方法
问题:在这里执行转型的时候: 将AcctInfoUploadRequest 也引入了
java.lang.ClassCastException: com.xmltest.AcctInfoUploadRequest cannot be cast to com.xmltest.TestDownloadRequest
TestDownloadRequest roomTypeVO = (TestDownloadRequest) hotelObj.getBody() ;
请问如何解决这个问题!!
在我测试异常中,我发现JAXB解析XmlElements注解时,会自动将@XmlElement(type=AcctInfoUploadRequest.class)
作为转换类型。 展开
1.类关系
abstract class E (){}
class TestDownloadRequest extends E()
class AcctInfoUploadRequest extends E()
2.
class Envelope {
@XmlElements({
@XmlElement( type=TestDownloadRequest.class ),
@XmlElement(type=AcctInfoUploadRequest.class)
})
private E Body;
public E getBody() {
return Body;
}
public void setBody(E Body) {
this.Body = Body;
}
}
3.test程序
Envelope hotelObj = resultBinder.fromXml(retXml); //此处 封装解析方法
问题:在这里执行转型的时候: 将AcctInfoUploadRequest 也引入了
java.lang.ClassCastException: com.xmltest.AcctInfoUploadRequest cannot be cast to com.xmltest.TestDownloadRequest
TestDownloadRequest roomTypeVO = (TestDownloadRequest) hotelObj.getBody() ;
请问如何解决这个问题!!
在我测试异常中,我发现JAXB解析XmlElements注解时,会自动将@XmlElement(type=AcctInfoUploadRequest.class)
作为转换类型。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询