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