使jaxb行通用以避免重复编写

使jaxb行通用以避免重复编写,jaxb,Jaxb,从文件中解组: jaxbcontextjc=JAXBContext.newInstance(“com.acme.foo”); 解组器u=jc.createUnmarshaller(); 对象o=u.unmarshal(新文件(“nosferatu.xml”); 从输入流中解组: InputStream is=newfileinputstream(“nosferatu.xml”); JAXBContext jc=JAXBContext.newInstance(“com.acme.foo”); 解

文件中解组:

jaxbcontextjc=JAXBContext.newInstance(“com.acme.foo”);
解组器u=jc.createUnmarshaller();
对象o=u.unmarshal(新文件(“nosferatu.xml”);
输入流中解组:

InputStream is=newfileinputstream(“nosferatu.xml”);
JAXBContext jc=JAXBContext.newInstance(“com.acme.foo”);
解组器u=jc.createUnmarshaller();
对象o=u.unmarshal(is);
这些API已经相当通用了

JAXBContext

此对象是线程安全的,因此您只需创建一次,就可以从中创建
Marshaller
Unmarshaller
等的所有实例

Marshaller/Unmarshaller

这些对象不是线程安全的,因此需要确保它们不会同时被多个线程使用。除非您在上设置任何属性,否则始终可以执行以下操作:

jaxbcontextjc=JAXBContext.newInstance(“com.acme.foo”);
对象o=jc.createUnmarshaller().unmarshal(新文件(“nosferatu.xml”);