2017-01-31 16 views
1

私がEclipseデバッグモードに入っているとき、オブジェクトのツリー全体をコピーしたいと思います。それを行う簡単な方法はありますか?Eclipseデバッグモードでオブジェクトのツリー全体をコピー

オブジェクトには、内部に複数の構造体とハッシュマップがネストされています。したがって、すべてのエントリを拡張するのは退屈なプロセスです。

私はオブジェクト全体をコピーし、後でそれを検査したいと思います。どうしたらいいですか?ありがとう!

+0

後で調べるために、私はそれを(多くの)A4に印刷するか、出力を外部エディタにコピーします。私はすべてのクラスに良いtoStringを提供しました。それは完璧な解決策ではありません。ところで、それは良い質問です。 :) – javaLover

答えて

1

接続されているオブジェクトのすべてがシリアライズ可能な場合、オブジェクトグラフをファイルにシリアル化できます。

私はこの方法をTestUtils.serialize(Serializable, String)という方法で作成しました。私は内部的にはApacheのSerializationUtilsを使用していますが、その文字列はファイルパスです。

使用これを実行がブレークポイントで停止している:

後であなたがオブジェクトにファイルをdeserialzeすることができ、適切な引数でserialize()メソッドを呼び出す

  • 表示ビューを開きますもう一度グラフを作成して(例えば単体テストで)、それを調べたり、その部分を抽出したりしてください。

    すべてのオブジェクトがシリアライズ可能でない場合は、serialize()を処理して、これらのケースを処理するか、またはそのようなものを処理できる他の汎用シリアル化ライブラリを使用する必要があります。

    他の選択肢がありますが、あなたの問題のため、おそらく不十分:

    • だけgreenshot
    • のようなスクリーンショットツールを使用して、本当に必要な値
    • が含まれているデバッグ/発現ビューのstring()にカスタムを書きます
  • +0

    Plはああ、事前にth文法を修正! – iehrlich

    +0

    @iehrlichどういう意味ですか? a)「u」のような不足、またはb)代替案の私のリストの歪んだ値下げ、今は固定されているので、弾丸として表示されるか、c) – elonderin

    +0

    私たちはそのサイトで従来の英語を使用しようとしています。適切なスペルの例については、事実上、他のメッセージを見てみてください。このようなスペルを使用すると、投稿にフラグが付けられて削除される可能性が最も高くなります。 – iehrlich

    関連する問題