我和我的unmarshaller有问题 . 我有一个如下所示的文件:
<Employee xmlns="namespace here">
<Employee>
<Id>2</Id>
<Name>idk</Name>
</Employee>
</Employee>
问题是根元素,元素列表的名称是“Employee” . 当我去解组时,我得到了一个classcastexception .
@XmlRootElement(name="Employee")
public class EmployeeInformation {
List<EmployeeInformationElement> elements;
private String errorCode;
private String errorMessage;
public List<EmployeeInformationElement> getElements() {
return elements;
}
@XmlElement(name="Employee")
public void setElements(List<EmployeeInformationElement> elements) {
this.elements = elements;
}
public String getErrorCode() {
return errorCode;
}
@XmlElement(name="ErrorCode")
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
public String getErrorMessage() {
return errorMessage;
}
@XmlElement(name="ErrorMessage")
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}
我能够使用此代码来编组一个看起来与我需要解组的文件完全相同的文件 . 所以我很困惑 . 什么是遗失所以当我解组时,unmarshaller没有给我以下例外:
java.lang.ClassCastException: XXXX.EmployeeInformationElement cannot be cast to XXXX.EmployeeInformation
1 回答
无法重现(在Java 1.8.0_65上测试) .
由于您没有提供MCVE(最小,完整和可验证的示例),因此这是一个有效的 .
只有已知的区别在于删除了名称空间以进行简单测试 .