使jaxb行通用,以避免重复写入它们

时间:2012-10-10 18:37:45

标签: jaxb

File

解组
   JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
   Unmarshaller u = jc.createUnmarshaller();
   Object o = u.unmarshal( new File( "nosferatu.xml" ) );

InputStream

解组
   InputStream is = new FileInputStream( "nosferatu.xml" );
   JAXBContext jc = JAXBContext.newInstance( "com.acme.foo" );
   Unmarshaller u = jc.createUnmarshaller();
   Object o = u.unmarshal( is );

1 个答案:

答案 0 :(得分:0)

JAXB (JSR-222) API已经非常通用了。

<强>的JAXBContext

此对象是线程安全的,因此您只需创建一次,然后从中创建MarshallerUnmarshaller等所有实例。

<强>的Marshaller / Unmarshaller的

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

JAXBContext jc = JAXBContext.newInstance("com.acme.foo");
Object o = jc.createUnmarshaller().unmarshal(new File("nosferatu.xml"));