オブジェクトのツリー構造を含むプログラムを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;
}
....
これで、3つの構造が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でこのケースを解決する方法について何か提案はありますか?または、他のテクノロジーを使用する必要がありますか?