在完成将XML文件解组为对象后,如何让JAXB调用方法?

Ell*_*iot 21 jaxb unmarshalling

我正在使用JAXB将XML文件解组为Java对象 - 标准的东西.一旦JAXB完成了这个,我就想在新创建的对象上调用一个方法.

有机制这样做吗?我更喜欢这个对象,而不是外部实体,这样做可以将构造保持在一个地方.

谢谢.

Rob*_*ert 32

您可以简单地将以下方法添加到对象定义中:

void afterUnmarshal(Unmarshaller u, Object parent) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

一旦当前对象被完全反序列化,它将被调用.另请参阅有关解组回调的文档


bdo*_*han 16

除了Unmarshaller.Listener之外,您还可以将以下方法添加到域模型类本身.

  • public void beforeUnmarshal(Unmarshaller unmarshaller, Object parent)
  • public void afterUnmarshal(Unmarshaller unmarshaller, Object parent)

来自:http: //java.sun.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.Listener.html


iva*_*off 7

为了能够在解后执行代码,您需要一个Unmarshaller-Listener

但是,我不确定,是否在设置属性之后或之前调用了侦听器.

注意:自JAXB- 2.0(JDK- 6)以来,监听器可用