我需要反序列化xml,这是多态类的结果。 以下是2个例子。
示例1:
<Root>
<TYPE>TYPE1</TYPE>
<Data>
<data1>fdfdf</data1>
<data2>dfdfdf<data2>
</Data>
</Root>
示例2:
<Root>
<TYPE>TYPE2</TYPE>
<Data>
<data3>fdfdf</data1>
<data4>dfdfdf<data2>
</Data>
</Root>
我的java类结构是
class Root {
String TYPE ;
Data data;
}
class Data {
}
class DataType1 extends Data{
data1;
data2;
}
class DataType2 extends Data{
data3;
data4;
}
xml中的Root.TYPE可用于确定xml中的数据是用于DataType1还是DataType2。 XML不为标记提供任何“类”属性。
我在简单的xml中尝试了各种Strategy类但无法使其正常工作。
您是否有任何建议我应该使用哪种策略或其他类,以便在反序列化期间正确解析xml并创建DataType1或DataType2的正确对象。
谢谢,
图莎尔
答案 0 :(得分:1)
正如@alykhalid在评论中所说,你应该考虑使用简单的if-else或switch语句。