【发布时间】:2014-10-04 05:56:43
【问题描述】:
我将 JAXB 与 SAX 一起使用。我正在使用 Unmarshaller 来解组数据。提到here,在将 JAXB 与 SAX 结合时,我们必须使用 UnmarshallerHandler 而不是 Unmarshaller。然后 UnmarshallerHandler 不是线程安全的。
那么我应该将解组代码包装在如下所示的同步块中吗?
synchronized(this) {
UnmarshallerHandler unmarshallerHandler = unmarshaller.getUnmarshallerHandler();
reader.setContentHandler(unmarshallerHandler);
reader.parse(xml);
Foo foo = (Foo) unmarshallerHandler.getResult();
}
现在使用 UnmarshallerHandler 比 Unmarshaller 有什么优势?
【问题讨论】: