私は制御できない外部ソースからxsdを取得しました。今度は、JAXB生成クラスにカスタムメソッドを追加して、ゲッターとセッターを持つ単純なPOJOではなく、オブジェクト自体についてもっと知るようにしたいと考えています。JAXB生成クラスにカスタムビヘイビアを追加する方法。既存のメソッドをオーバーライドしないカスタム
このタイプのアプローチを実装したら、水和オブジェクトをドリルダウンする必要はありませんが、カスタムメソッドを呼び出す必要がある特定の情報をオブジェクトに問い合わせて、
もちろん、私は、ルートオブジェクトの子供の子供たちを掘り下げ、各子供にゲッターメソッドを呼び出し、ビジネスロジックを実装する伝統的なプログラミングアプローチがあります。しかし、どういうわけか、ここのチームはそれを望んでいない。
私がこれまで行ってきたアプローチの1つはブルートフォース1です。私はJAXBを使用してXSDからクラスを生成します。私は外部のユーティリティを持っています(これはスタンドアロンのJavaプログラムです)。実行すると、特定のディレクトリにあるテキストファイル(独自の方法で、どのメソッドを.javaファイルに移動するかを調べるために構造化されています)カスタムメソッドを保持し、これらのメソッドを適切なJAXB生成クラスに移動します。新しいバージョンのXSDが得られるたびに、クラスを生成し、このユーティリティを呼び出し、おそらくJAXB生成クラスにいくつかの変数の変更がある場合のコンパイルの問題などを解決する必要があります。ユーティリティは完全に正常に動作しています。しかし、私はこれを知りたい。
これを行うにはもっと良い方法はありますか?私はインターネットをチェックした。いくつかのソリューションがありますが、JAXBで生成されたオブジェクトの既存のgetメソッドをオーバーライドするだけで、完全に新しいメソッドを追加することはありません。
お勧めします。