field : param
class : xmleditor.domain.Type
required-type : xmleditor.domain.Type
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /root/type/param[2]
我得到这个错误,我得到了重复的参数。但是当我尝试使用
xstream.addImplicitCollection
我收到这个错误:
Exception in thread "main" com.thoughtworks.xstream.InitializationException: Field "param" declares no collection or array.
所以我不知道我的问题到底是什么。
@XStreamAlias("root")
public class Type {
private Info info;
@XStreamAlias("OBJECT_TYPE")
private String objectType;
private Properties prop;
private Parameters param;
private Restrictions restri;
@XStreamImplicit(itemFieldName = "type")
private List typeList = new ArrayList();
// Constructor, Getters and setters.
这个问题的原因可能是什么?
最佳答案
声明隐式集合意味着您在 xml 文档的相同嵌套级别有多个具有相同标记名称的 xml 元素。
要将这些映射到您的 Java 类,您需要一个集合或一个数组来存储这些对象。XStream 可以通过将这些元素作为隐式集合映射到您的对象结构来处理这个问题。
因此您需要将param
变量更改为Collection 或Array 类型。即改变
来自:
private Parameters param;
到:
@XStreamImplicit
private List<Parameters> param;
关于java - com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$DuplicateFieldException : Duplicate field 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21307117/