@XmlElementRefs & @XmlElementRef аннотации в Java
Может кто-нибудь объяснить мне, что делать
@XmlElementRefs
и
@XmlElementRef
аннотации означают в Java и каково их использование.
РЕДАКТИРОВАТЬ:@skaffman
в порядке, предположим, что у меня есть такая такая коллекция
@XmlElementRefs({
@XmlElementRef(name="ElementA", type=ClassA),
@XmlElementRef(name="ElementB", type=ClassB) }
)
List<Object> items;
Теперь, как мне получить доступ к каждому отдельному элементу этого списка? Правилен ли следующий код?
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:
}
}
Это правильный подход? Есть ли лучший способ выполнить обработку каждого класса? Я имею в виду, есть ли способ избежать этих конструкций if else
?
Ответы
Ответ 1
Они используются для аннотирования коллекции, которая может содержать различные типы. Связывание Java для такого списка:
@XmlElementRefs({
@XmlElementRef(name="ElementA", type=ClassA),
@XmlElementRef(name="ElementB", type=ClassB)
})
List<Object> items
Здесь items
может содержать произвольное сочетание ClassA
и ClassB
, и поскольку это не может быть выражено в сигнатуре типа List
, оно должно быть выражено с помощью аннотаций.