web-dev-qa-db-ja.com

値オブジェクトのすべての値を印刷する

Webサービス呼び出しによって返される値オブジェクトのすべての値を出力する必要がある問題をデバッグする必要があります。 Valueオブジェクトは、ある意味で複雑なオブジェクトであり、メンバーとして別のオブジェクトがあり、そのメンバーには別のオブジェクトがあります。

Getメソッドを使用してすべての値を出力するのは面倒です。それで、StringやintやDateなどのプリミティブレベルに到達し、1つのAPIを使用してそれらをすべて印刷する方法によって値オブジェクトを分解する方法があるかどうか疑問に思っていましたか?

私は以下の質問を見ましたが、私の確率は、値オブジェクトのソースコードにアクセスできないことです。ソースは難読化されたjarにあります。

https://stackoverflow.com/questions/2413001/how-to-print-values-of-an-object-in-Java

2
SKDev

Apache Commonsユーティリティの1つを探しています。

これらは、何をしたいかに応じて、わずかに異なることを行います。

3
user40980

再帰を使用してサブフィールド構造を発見できます

public static void dump(Object o){
    Field[] fields = ReflectUtils.getFields(o.getClass());
    try{
        for(Field field : fields){
            field.setAccessible(true);
            Object value = field.get(o);
            System.out.println(field.getName() + "=" + field.get(o));
        }
    }catch(Exception e){
        e.printStackTrace();
    }
}
0
Andrea Pinti