2

30ほどのフィールドを持つ複雑なオブジェクトがあり、それ自体に多くのフィールドを持つオブジェクトが含まれています。

私が本当にやりたいのはこれです。ブレークポイントにあるときは、ctrl-cを使用して、変数(または式)ウィンドウに表示される構造全体をコピーします。次に、いくつかのコードを実行し、構造全体を再度ctrl-cして、それらを並べて比較します。

ただし、Eclipse(Juno)では、構造全体をコピーすることはできません。また、コードをステップ実行するときにオブジェクト内のすべてのオブジェクトを展開しても、ある行から次の行へのすべてのフィールドに加えられた変更は強調表示されません。

オブジェクトが変更されたときに何らかのブレークポイントトリガーを作成しても問題ありませんが、それは変更を行う外部jarファイルであるため、それがどのように機能するかはわかりません。また、Eclipseがわざわざ表示してくれるとは思いません。可能であれば変更されたデータ。(そうである場合、それはまったく直感的ではありません)。

どんな助けでも大歓迎です。

チャールズ。

4

2 に答える 2

2

Eclipseを使用してtoString()メソッドを自動生成し、その方法でオブジェクトを比較することができます。これにより、実行中のさまざまな時点でオブジェクトをコピーして比較できます。

しかし、Eclipseでこれを別の方法で行う方法はわかりません。

于 2013-03-13T18:27:28.943 に答える
1

検査するオブジェクトの詳細フォーマッタを自分で作成します。「外部化されたtoString()メソッド」のようなものであると想像できます。検査対象のプライベートメンバーにアクセスすることもできます。次に、この出力をお好みの差分ツールにフィードできます。

于 2013-03-16T15:38:43.427 に答える