尝试使用JAXB时是否可以拥有少量对象工厂?

时间:2014-07-10 10:58:35

标签: java maven jaxb

我有两组生成的java类(每个集都有对应的ObjectFactory),我想将它们合并到一个集合中以便同时使用。

是否可以在JAXB中使用两个 ObjectFactories (两个标记为 @XmlRegistry 的类)?

类由

生成

maven-jaxb2-plugin(版本0.8.3)

JDK:1.6.0_43

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用两个ObjectFactory

是的,您可以使用多个ObjectFactory课程。在您的代码中,您将需要打包限定至少一个引用。注释为@XmlRegistry的类不需要调用ObjectFactory,但JAXB从XML Schema生成的类始终是。

JAXB可以合并ObjectFactory

不,原因如下:

  1. 它引入了可能的方法名称冲突,JAXB将为此提供冲突解决机制。
  2. 当在一个或多个包名称上创建JAXBContext时,它会在该包中查找ObjectFactory类以从中派生元数据。减少ObjectFactory类的数量会破坏这一点。
  3. 最终它不会让你的代码变得更容易。
  4. 你可以手动合并吗?

    是。您只需注意,如果您按照包裹名称创建JAXBContext,则ObjectFactory会被提取。