私はこのポストで答えられる同じ問題を持っています How do I print my Java object without getting "[email protected]"? 私はオブジェクト参照値を出力しているログにPutObjectRequestを印刷しようとしています。しかし、私はAWSからあらかじめ定義されたクラス(PutObjectRequest
)を使用しているので、toString()メソッドを追加することはできません。そのオブジェクトにどのような値が入るのか印刷する方法はありますか?定義済みのJavaオブジェクトを印刷するには?
log.info("Sending request: {}", request);
本当にありません。そのクラスの作成者が適切な 'toString()'メソッドを含む先見の明を持たない場合、あなたは一種の骨抜きです。リスト内の各オブジェクトタイプを検索して、適切なかなりのプリンタ(書く必要があります)を選択することができますが、これは実装にかなり時間がかかることです。 – markspace
タイプはJSONのようなフォーマットに簡単にシリアライズできます。これが当てはまる場合、テキスト(有益かそうでないか)は比較的簡単に抽出できるかもしれません。YMMVとオブジェクトグラフに依存する他の潜在的な問題があります。 JSONシリアライゼーション自体は反射を使用しますが、手動で行う/できます。 – user2864740
それとも、私が思うように反射でそれを突くことができます。また面倒ですが、 'toString()'を使わずにシステム内のすべてのオブジェクトを印刷するという妥当な仕事をするメソッドを書くことができるかもしれません。 – markspace