2012-01-25 14 views
0

私が持っているものは、XMLのアンマーシャリングされたJavaオブジェクトです。この整列されていないオブジェクトの部分は、処理のためにさまざまなクラスに送られます。アンマーシャリングされたオブジェクトの内容をログに記録する必要があります。 toString()メソッドを簡単にオーバーライドすることはできますが、この場合、クラスはxjcを使用してビルド時に生成され、これらのクラスのtoString()をオーバーライドすることはできません。toString()for javaの代替

私はコンテンツを印刷するための他の方法を探しています。何か案が ?

+2

toString()を簡単にオーバーライドできる場合は、どうしてですか?困難で複雑なソリューションをお探しですか? –

+2

'toString()'は何をしたいのですか? – cheeken

+0

この場合、クラスはxjcを使用してビルド時に生成されるため、これらのクラスのtoString()をオーバーライドすることはできません。 – Gaurav

答えて

2

xjcプラグインを使用して、必要なtoStringを生成できます。

+0

私はそれが動作すると思う..これはhttp://cxf.apache.org/cxf-xjc-ts.htmlを見つけた – Gaurav

0

リフレクションを使用してオブジェクトを検査し、その文字列表現を必要な形式で返すか、文字列表現を直接ログに記録するユーティリティクラスを記述できます。

+0

私はその解決策を考えました。たぶん私はxmlのようないくつかのライブラリを使用することができますXML形式でログインする..他のソリューションを探しています。 – Gaurav

1

マーシャリングにtoString()を使用しないでください。それはそれが意図しているものではありません。 (そのメソッドをするためのものあるものへのガイドはjava.lang.Objectのjavadocを参照してください。)

をあなたは手でマーシャル/アンマーシャルを実施することを決定しない場合でも、あなたは、この目的のためにtoString()を使用しないでください。

0

アンマーシャリングされたJavaオブジェクトを受け取り、リフレクションを使用して文字列表現を提供するヘルパークラスを作成します。xsdとアンマーシャリングされた内容を知っているので、リフレクションを使用したくない場合は、