gpt4 book ai didi

java - X流: duplicate field exception

转载 作者:数据小太阳 更新时间:2023-10-29 02:16:27 24 4
gpt4 key购买 nike

<staging>
<stage>
<name>aaaa</name>
<taskName>aa</taskName>
<taskName>qwqwse</taskName>
<taskName>qwe</taskName>
<iconName>asdad</iconName>
<iconName>dasd</iconName>
</stage>

<stage>
<name>dasda</name>
<taskName>asdak</taskName>
<taskName>dasdk1</taskName>
<taskName>dasdask2</taskName>
<iconName>dasdn</iconName>
<iconName>dasdcon</iconName>
</stage>
</staging>

这是我的 java 类:

@XStreamAlias("stage")
public class Stage {

private String name;
private List<String> taskName;
private List<String> iconName;
}

我正在使用 XStream 1.4.2 将该 XML 数据转换为 Java 对象。

我看过一些 SO 帖子,但仍然没有解决我的问题。

它抛出以下异常:

com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$DuplicateFieldException: Duplicate field taskName
---- Debugging information ----
field : taskName
class : com.thbs.soaconnect.model.configuration.Stage
required-type : com.thbs.soaconnect.model.configuration.Stage
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /soaConnect/staging/stage/taskName[2]
line number : 28
class[1] : java.util.ArrayList
converter-type[1] : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[2] : com.thbs.soaconnect.model.configuration.Configuration
version : null

我按照之前很多人的建议尝试了以下方式:

xstream.addImplicitCollection(Stage.class,"taskName", String.class);
xstream.addImplicitCollection(Stage.class,"iconName", String.class);

虽然没有抛出任何异常,但是读取不到值,每个元素都有。

你能帮帮我吗

最佳答案

答案就在调试信息中

Duplicate field taskName
path : /soaConnect/staging/stage/taskName[2]

更新:

看着这个answer我认为您缺少一些注释

    @XStreamAlias("stage")
public class Stage {

private String name;

@XStreamImplicit(itemFieldName="taskName")
private List<String> tasks;

@XStreamImplicit(itemFieldName="iconName")
private List<String> icons;
}

关于java - X流: duplicate field exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18355495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com