java与Unmarshaller相比,Unmarshaller的优势是什么
我将JAXB与SAX结合使用。我正在使用解组器来解组数据。有人提到here在结合JAXB和SAX时,我们必须使用解组器而不是解组器。然后解组器不是线程安全的
那么,我应该像下面这样将解组代码包装在一个同步块中吗
synchronized(this) {
UnmarshallerHandler unmarshallerHandler = unmarshaller.getUnmarshallerHandler();
reader.setContentHandler(unmarshallerHandler);
reader.parse(xml);
Foo foo = (Foo) unmarshallerHandler.getResult();
}
现在,使用解组器比使用解组器有什么优势
# 1 楼答案
UnmarshallerHandler
的引入是为了方便那些需要显式地使用JAXB和SAX解析器的人(也就是说,他们需要做一些特定的设置)。当您使用Unmarshaller
时,JAXB impl正在处理它认为合适的解析除非你有理由使用
UnmarshallerHandler
,否则你可能应该使用Unmarshaller