<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);
例外はスローしませんが、値を読み取ることはできませんが、各要素には値があります。
手伝ってくれませんか。