使@XmlElements动态

时间:2018-09-06 13:12:47

标签: java annotations jaxb java-annotations

注释类型为@XmlElements的文档具有以下示例:

Outlook = win32com.client.gencache.EnsureDispatch("Outlook.Application")

当您只需要在列表中包含一些已知类型时,这非常有用。我正在寻找一种使其更具动态性的方法,以便在将新元素添加到系统类public class Foo { @XmlElements( @XmlElement(name="A", type=Integer.class), @XmlElement(name="B", type=Float.class) } public List items; } 时不需要进行修改。

首先想到的是使用一些自定义注释。让我们将其称为Foo,它具有将应用于元素(@XmlElementTypeInteger等)的类型的属性。当然,这不能对预定义类型执行,它仅适用于新类型。

然后,注释Float的变体将应用于类@XmlElements中的List个项目。它会有一个属性来指示它可以包含的Foo的类型,也许是一个扫描POJO的软件包。

所以我有两个问题:

  1. 这样的东西已经存在吗?
  2. 如果没有,可以实施类似的方法吗?如果是这样,现在吗?

1 个答案:

答案 0 :(得分:0)

我认为您可以使用Object.class的类型,然后使用XmlAnyElement。如果您可以举一个具体的例子,您想要实现的目标,那么我就有可能编辑答案并给出具体的例子。