使用JAXB时是否总是需要ObjectFactory类?

使用JAXB时是否总是需要ObjectFactory类?

没有它我得到这个例外:

javax.xml.bind.JAXBException:“com.abc”不包含ObjectFactory.class或jaxb.in​​dex

我收集 ObjectFactory可能有点矫枉过正。 但鉴于这个例外,我猜你需要它……但不知道为什么?

当您使用JAXBContext.newInstance(String)工厂方法时,您将获得该exception,其中传递包名称作为参数。 这确实需要ObjectFactory ,否则,JAXB不知道要处理哪些类。

如果您没有ObjectFactory ,则需要使用JAXBContext.newInstance(Class...) ,传入带注释的类的显式列表以添加到上下文中。

您可以包含一个jaxb.in​​dex文件,而不是ObjectFactory,该文件是一个文本文件,其中包含一个新的行分隔的Java类列表。

有关使用jaxb.in​​dex文件的示例,请参阅: