Webサービス呼び出しによって返される値オブジェクトのすべての値を出力する必要がある問題をデバッグする必要があります。 Valueオブジェクトは、ある意味で複雑なオブジェクトであり、メンバーとして別のオブジェクトがあり、そのメンバーには別のオブジェクトがあります。
Getメソッドを使用してすべての値を出力するのは面倒です。それで、StringやintやDateなどのプリミティブレベルに到達し、1つのAPIを使用してそれらをすべて印刷する方法によって値オブジェクトを分解する方法があるかどうか疑問に思っていましたか?
私は以下の質問を見ましたが、私の確率は、値オブジェクトのソースコードにアクセスできないことです。ソースは難読化されたjarにあります。
https://stackoverflow.com/questions/2413001/how-to-print-values-of-an-object-in-Java
Apache Commonsユーティリティの1つを探しています。
これらは、何をしたいかに応じて、わずかに異なることを行います。
再帰を使用してサブフィールド構造を発見できます
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();
}
}