我正在用 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 解决这种情况的任何建议?还是我应该使用其他技术?