Je dispose des éléments suivants :
class A{
@XmlElement
String name;
//getters and setters
}
et
class B extends A{
@XmlElement
String height;
//getters and setters
}
Enfin, j'ai
@XmlRootElement
class P{
@XmlElement
List<A> things;
//getters and setters
}
Si je le fais
List<A> l = new ArrayList<A>();
l.add(new B('hello', 20)) //Add new B with height of 20 and name hello
P p = new P();
p.setThings(l); //Set things to list of B's.
et marshal P, je n'obtiens le champ qu'en tant que partie des choses et non en hauteur.
Je sais que je peux ajouter @XmlSeeAlso(B.class) dans A et que tout fonctionnera.
Mais le problème est que je ne connais pas toutes les classes étendues autres que B, car A peut être étendu au moment de l'exécution.
Comment définir dynamiquement @XmlSeeAlso à l'exécution ?