我的代码在一段时间内运行良好。我改变了一些东西,现在我有了一些不再正确解组的整数列表。为了尝试解决问题,我将整个事情归结为以下内容,但问题仍然存在。
我已将我的 XML 文件缩减为一个测试文件,其全部内容为
<polylist>
<p>1 0 0 0 0 1 2 0 2 3 1 3 1 1 4 2 1 5</p>
</polylist>
我已将我的 Java 代码缩减为一个测试文件,其中的全部内容是
import java.io.File;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "polylist")
public class PolyList
{
public List<Integer> p;
public static void main(String[] args) throws Exception
{
JAXBContext jaxbContext = JAXBContext.newInstance(PolyList.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
PolyList pl = (PolyList)unmarshaller.unmarshal(new File("ptest.xml"));
System.out.println(pl.p);
}
}
打印 pl.p 导致的输出[1291596391]
不是[1 0 0 0 0 1 2 ...]
预期的。如果我更改public List<Integer> p;
为,public List<String> p;
那么它会[1 0 0 0 0 1 2 0 2 3 1 3 1 1 4 2 1 5]
按预期正确输出。所以它正确地获取 aList<String>
但不是 a List<Integer>
。List<Integer>
它工作正常,几天前在完整的生产项目中正确获得,但现在不行了。
(编辑)实际上,该List<String>
版本也不起作用。数字之间没有逗号,这意味着它没有显示多个字符串的列表,每个字符串代表一个不同的数字。相反,它仍然是代表整个事物的 1 个字符串。
谢谢你,布莱斯,指出这一点。我没有早点注意到它的错误。