我正在使用JAXB 2.2.2来解析一个简单的XML-REST流。这是一段代码:
JAXBContext jc = JAXBContext.newInstance( "com.example.entities" ); Unmarshaller u = jc.createUnmarshaller(); r = (Response )u.unmarshal( inputStream ); ObjectFactory类: @XmlRegistry public class ObjectFactory { public Response createRsp() { return new Response(); } }
回应类别:
@XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name="rsp") @XmlType public class Response { ... }
“ com.example.entities”必须包含ObjectFactory类或jaxb.index。我想使用ObjectFactory类来确定一些pojo初始化,但是这些类从未使用:Response类始终直接由class.newInstance()实例化。这有什么问题吗?
您可以利用@XmlType注释来控制如何创建对象:
@XmlType(factoryClass=ObjectFactory.class, factoryMethod="createRsp") public class Response { }