field : param
class : xmleditor.domain.Type
required-type : xmleditor.domain.Type
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /root/type/param[2]
我得到这个错误,我得到了重复的Param。但是当我尝试使用
时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.
造成这个问题的原因是什么?
答案 0 :(得分:3)
声明隐式集合意味着您在xml文档中的同一嵌套级别具有多个具有相同标记名称的xml元素。
要将这些映射到Java类,您需要使用Collection或Array来存储这些对象.XStream可以通过将这些元素作为隐式集合映射到对象结构来处理此问题。
因此,您需要将param
变量更改为Collection或Array类型。也就是说,改变
从:
private Parameters param;
为:
@XStreamImplicit
private List<Parameters> param;