23

私は JAXB を使用して、XML ファイルを Java オブジェクト (標準的なもの) に非整列化しています。JAXB がこれを完了したら、新しく作成されたオブジェクトでメソッドを呼び出したいと思います。

これを行うメカニズムはありますか?外部エンティティではなく、オブジェクトがこれを実行して、構築を1か所に保持することをお勧めします。

ありがとう。

4

3 に答える 3

38

次のメソッドをオブジェクト定義に簡単に追加できます。

void afterUnmarshal(Unmarshaller u, Object parent) {
  ...
}

現在のオブジェクトが完全に逆シリアル化されると呼び出されます。コールバックのアンマーシャリングに関するドキュメントも参照してください

于 2010-12-07T15:56:24.153 に答える
18

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

于 2010-07-05T21:04:33.117 に答える
7

アンマーシャリングが行われた後にコードを実行できるようにするには、Unmarshaller-Listenerが必要です。

ただし、プロパティが設定された後または前にリスナーが呼び出されるかどうかはわかりません。

注:リスナーは、JAXB- 2.0(JDK- 6)以降で使用できます。

于 2009-06-21T00:42:26.550 に答える