tangguo

JAXB解组期间,ObjectFactory的作用是什么?

java

我正在使用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.in​​dex。我想使用ObjectFactory类来确定一些pojo初始化,但是这些类从未使用:Response类始终直接由class.newInstance()实例化。这有什么问题吗?


阅读 579

收藏
2020-10-17

共1个答案

小编典典

您可以利用@XmlType注释来控制如何创建对象:

@XmlType(factoryClass=ObjectFactory.class, factoryMethod="createRsp")
public class Response {
}
2020-10-17