我已经基于模式文件构建了一个 Java 类,现在我正在构建一个程序来基于生成的类和它下面的模式构建一个实际的 XML 文件。有一个部分允许多个子元素,例如:
<entry>
<methods>
<method type="walking"/>
<method type="running"/>
<method type="cycling"/>
</methods>
</entry>
需要用户输入才能输入<method>
元素,直到-
给出 a 以结束列表。但是,当我收集要添加到列表的输入时,列表仅包含我给出的最后一个方法,例如:
Enter a method (- to finish): walking
Enter a method (- to finish): running
Enter a method (- to finish): cycling
Enter a method (- to finish): -
结果在:
<methods>
<method type="cycling"/>
<method type="cycling"/>
<method type="cycling"/>
</methods>
这是我收集方法的代码:
Scanner input = new Scanner(System.in);
entry.methods methods = new entry.methods();
entry.methods.method method = new entry.methods.method();
while (true) {
System.out.print("Enter a method (- to finish): ");
String given = input.next();
if (given.equals("-")) {
break;
}
method.setType(given);
methods.getMethod().add(method);
}
entry.setMethods(methods);
据我了解,add(method)
应该在列表末尾添加一个新条目,但它似乎以某种方式将所有条目替换为最后一个条目。尽管这个问题可能很简单,但我还是在解决这个问题。如果需要解决问题,我会在此处粘贴这些类,但是,是的,我对 Java/JAXB 还是很陌生-是的,这与学校项目有关,因此如果所提供的设置很奇怪或解释的很奇怪。
我认为问题在于您每次迭代都会覆盖该方法。尝试移动这条线:entry.methods.method method = new entry.methods.method();
在循环内。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句