@XmlElementRefs & @XmlElementRef аннотации в Java - PullRequest
13 голосов
/ 27 января 2010

Может кто-нибудь объяснить мне, что делать

@XmlElementRefs

и

@XmlElementRef

аннотации означают в Java и что они используют ..

EDIT: @ 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 Ответ

6 голосов
/ 27 января 2010

Они используются для аннотирования коллекции, которая может содержать различные типы. Привязка Java для такого списка:

@XmlElementRefs({
   @XmlElementRef(name="ElementA", type=ClassA),
   @XmlElementRef(name="ElementB", type=ClassB)
})
List<Object> items

Здесь items может содержать произвольное сочетание ClassA и ClassB, и, поскольку это не может быть выражено в сигнатуре типа List, оно должно быть выражено с помощью аннотаций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...