Salut à tous,
Je souhaite travailler avec une classe qui possède une interface comme élément.
Cette interface me sert en fait à masquer différentes classes d'énum qui peuvent être élément de ma classe principale.
Utilisant JAXB de la manière suivante je n'ai aucun problème pour marshmaller une instance de classe. En revanche l'operation inverse me pose problème.
Ici le code :
Lorsque je marshall mon instance j'obtiens la balise suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 @XmlRootElement Classe MaClasse { @XmlAnyElement private TypeInterface type; .. } @XmlSeeAlso({TypeAEnum.class, TypeBEnum.class}) public interface TypeInterface { } et ses 2 instances : @XmlRootElement public enum TypeAEnum implements TypeInterface{} @XmlRootElement public enum TypeBEnum implements TypeInterface{}
<ns2:typeAEnum>typeAvalue</ns2:typeAEnum>
Mais lorsque je veux unmarshmaller le doc .xml, l'erreur suivante apparâit :
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Can not set www.TypeInterface field www.MaClasse.type to com.sun.org.apache.xerces.internal.dom.ElementNSImpl
Une solution ?
Partager