Can some please explain to me what do
@XmlElementRefs
and
@XmlElementRef
annotations mean in Java and what is their use..
EDIT: @skaffman
okay, suppose I have one such collection
@XmlElementRefs({
@XmlElementRef(name="ElementA", type=ClassA),
@XmlElementRef(name="ElementB", type=ClassB) }
)
List<Object> items;
Now how do I access every individual element of this list? Is the following code correct?
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:
}
}
Is this correct approach? Is there a better way to perform each class specific processing? I mean is there a way to avoid those if else
constructs?
These are used to annotate a collection which can contain various different types. The java binding for such a list is:
@XmlElementRefs({
@XmlElementRef(name="ElementA", type=ClassA),
@XmlElementRef(name="ElementB", type=ClassB)
})
List<Object> items
Here, items
can contain an arbitrary mix of ClassA
and ClassB
, and since that can't be expressed in List
's type signature, it has to be expressed using annotations.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With