@XmlElementRefs & @XmlElementRef les annotations en Java
Peut-il m'expliquer ce qui ne
@XmlElementRefs
et
@XmlElementRef
annotations signifie en Java et quelle est leur utilisation..
EDIT:
@skaffman
bon, supposons que j'ai une telle collection
@XmlElementRefs({
@XmlElementRef(name="ElementA", type=ClassA),
@XmlElementRef(name="ElementB", type=ClassB) }
)
List<Object> items;
Maintenant, comment puis-je accéder à chaque élément de cette liste? Est le code suivant correcte?
for (int j = 0; j < items.size(); ++j) {
if (items.get(i).getClass().equals(ClassA)) {
//perform ClassA specific processing:
} else if (items.get(i).getClass().equals(ClassB)) {
//perform ClassB specific processing:
}
}
Est-ce correct? Est-il une meilleure façon d'effectuer chaque classe de traitement spécifique? Je veux dire est-il un moyen d'éviter ces if else
constructions?
Vous utilisez habituellement ce avec le polymorphisme. ClassA et ClassB à la fois d'étendre ClassBase, de sorte que vous n'avez pas besoin de si/d'autre de l'expédition correctement le traitement.
OriginalL'auteur 6pack kid | 2010-01-27
Vous devez vous connecter pour publier un commentaire.
Ceux-ci sont utilisés pour annoter une collection qui peut contenir différents types. La java de liaison pour une telle liste est:
Ici,
items
peut contenir une combinaison arbitraire deClassA
etClassB
, et, depuis, ne peut pas être exprimé dansList
's type de signature, il doit être exprimée à l'aide d'annotations.Je ne peux pas le lire. Merci de l'ajouter à votre question (et de le formater correctement.)
Mais le même travaille également avec @XmlElements et @XmlElement, non?
comment vous définissez ElementA ou B pour quelque chose?
Ok, j'ai trouvé la différence: propriété annotée avec @XmlElementRefs peut contenir des classes descendantes. <rs><a/></b><suba/><subb/></rs> vs <es><a/></b><suba xsi:type="suba" xmlns:xsi="
OriginalL'auteur skaffman