【发布时间】:2012-08-23 12:26:12
【问题描述】:
我正在用 Java 创建一个包含对象树结构的程序。所有涉及的类都实现相同的接口,并且每个类都包含一个子列表:
public class MyClass1 implements MyInterface {
List<MyInterface> children;
}
public class MyClass2 implements MyInterface {
List<MyInterface> children;
}
public class MyClass3 implements MyInterface {
List<MyInterface> children;
}
....
现在这三个结构被定义在一个 XML 文件中:
<myclass1>
<myclass2></myclass2>
<myclass1>
<myclass3></myclass3>
</myclass1>
</myclass1>
树结构可以是任何类型,由用户定义。当然,每个类都包含特定于类的变量,我暂时省略了。
现在我正在尝试使用 XStream 将 XML 文件反序列化为 Java 对象,最好使用注释,但我不知道该怎么做。我不想最终为每个可能的课程列出一个清单,例如在 MyClass1 中:
@XStreamImplicit(itemFieldName="myclass2")
List<MyClass2> children2;
@XStreamImplicit(itemFieldName="myclass3")
List<MyClass3> children3;
@XStreamImplicit(itemFieldName="myclass4")
List<MyClass4> children4;
关于如何使用 XStream 解决这种情况的任何建议?还是我应该使用其他技术?
【问题讨论】:
标签: java xml tree xstream xml-deserialization