我有這些類:多態性XStream的序列化和反序列化
@XStreamAlias("person")
public class PersonConfig {
private AnimalConfig animalConfig;
}
public interface AnimalConfig {}
@XStreamAlias("dog");
public class DogConfig extend AnimalConfig {}
@XStreamAlias("cat");
public class CatConfig extend AnimalConfig {}
而且我希望能夠反序列化這個XML與上面的類:
<person>
<dog/>
<person>
除了反序列化這個XML也有相同的類:
因此,在這兩種情況下,PersonConfig
的字段animalConfig
已填充。在帶有DogConfig
實例的第一個XML中,在帶有CatConfig
實例的第二個XML中。
這是可能通過添加一些註釋來使這項工作?
+1 - 不過,我會建議使用'@ XmlElementRef'因爲對應於替換組的XML模式的概念,而不是'@ XmlElements'這是用來映射選擇結構:HTTP://博客。 bdoughan.com/2010/11/jaxb-and-inheritance-using-substitution.html – 2012-07-17 17:01:37
是的,你是對的。我不知道'@ XmlElementRef',我讀了你的(很棒的)文章。我會更新我的答案。謝謝 ! – Mordhak 2012-07-18 08:38:17