我正在使用JAXB解组xml,但它返回错误的值突然它返回了错误的值。前一天工作正常。
节点:
<ListID>166</ListID>
Unmarshalling代码是:
public class ResponseParser {
static Object obj;
public static Object parseResponse(String response, Class<?> ctxClass) {
try {
ByteArrayInputStream input = new ByteArrayInputStream(response.getBytes());
JAXBContext jc = JAXBContext.newInstance (ctxClass);
Unmarshaller unmarshaller = jc.createUnmarshaller();
obj = unmarshaller.unmarshal(input);
}
catch (JAXBException e) {
}
return obj;
}
}
它正在返回:-90
。但它会像-90
之前一样顺序返回-91
请帮助!
答案 0 :(得分:1)
输入166
超出了byte
的范围,它是Java中127
的最大值。
package forum9632269;
public class Demo {
public static void main(String[] args) throws Exception {
System.out.println(Byte.MAX_VALUE);
}
}
输出
127
答案 1 :(得分:0)
你所面对的是非常奇怪的,但是可能它与xml文件包含有关。尝试替换呼叫
ByteArrayInputStream input = new ByteArrayInputStream(response.getBytes());
到
ByteArrayInputStream input = new ByteArrayInputStream(response.getBytes("UTF8"));
告诉我们这是否是您遇到问题的真正原因。