我正在使用 JAXB 将 XML 文件解组为 Java 对象——标准的东西。一旦 JAXB 完成此操作,我希望在新创建的对象上调用一个方法。
有没有一种机制可以做到这一点?我更喜欢对象,而不是外部实体,这样做是为了将构造保持在一个地方。
谢谢。
我正在使用 JAXB 将 XML 文件解组为 Java 对象——标准的东西。一旦 JAXB 完成此操作,我希望在新创建的对象上调用一个方法。
有没有一种机制可以做到这一点?我更喜欢对象,而不是外部实体,这样做是为了将构造保持在一个地方。
谢谢。
您可以简单地将以下方法添加到对象定义中:
void afterUnmarshal(Unmarshaller u, Object parent) {
...
}
一旦当前对象被完全反序列化,它将被调用。另请参阅有关解组回调的文档
除了 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