Java中的@XmlElementRefs和@XmlElementRef注释

6pa*_*kid 13 java xml jaxb

有些人可以向我解释一下是做什么的

@XmlElementRefs
Run Code Online (Sandbox Code Playgroud)

@XmlElementRef
Run Code Online (Sandbox Code Playgroud)

注释在Java中意味着什么是它们的用途..

编辑: @skaffman

好吧,假设我有一个这样的集合

@XmlElementRefs({
    @XmlElementRef(name="ElementA", type=ClassA),
    @XmlElementRef(name="ElementB", type=ClassB) }
)

List<Object> items;
Run Code Online (Sandbox Code Playgroud)

现在我如何访问此列表中的每个元素?以下代码是否正确?

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:
    }
}
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?有没有更好的方法来执行每个类特定的处理?我的意思是有办法避免这些if else结构吗?

ska*_*man 6

这些用于注释可以包含各种不同类型的集合.这种列表的java绑定是:

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

在这里,items可以包含任意组合ClassAClassB,而且由于不能在表达List的类型签名,它使用注释来表达.