java - com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$DuplicateFieldException : Duplicate field 问题

标签 java xml xstream

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/

相关文章:

java - 如何使用 XStream 为数据类型别名?

java - Dropwizard 线程等待计数增加,服务器停止响应所有资源请求

java - 如何将 Class<?> 转换为类型?

java - "getDeclaredXyz"在Java反射包中代表什么

iphone - 从 iPad 以 base64 格式和大小限制上传图像

Android KeyCode大写字母?

java - 可以从 List 生成平面 XML 结构的 XStream 自定义转换器?

java - JPA 和 MySQL 映射实体

php - 使用命名空间解析 XML 响应

java - XStream - 在序列化时转换所有空字符串