PHPにはvar_dumpだのprint_rだの
オブジェクトの中を確認する便利な関数がありますが、Javaにはないっぽいです。
System.out.println(target.toString());
こいつで吐き出してくれればわかりやすいのですが・・・そういうわけにもいきません。
というわけで、Reflectをつかって無理矢理調査してみた。
System.out.println("dump start....");
try {
Class clazz = target.getClass();
System.out.println(clazz);
for(Field f : clazz.getFields()) {
System.out.print(f.getName() + ":");
try {
f.setAccessible(true);
Object fieldval = f.get(target);
System.out.println(fieldval.toString());
}
catch(Exception e) {
System.out.println();
}
}
for(Field f : clazz.getDeclaredFields()) {
System.out.print(f.getName() + ":");
try {
f.setAccessible(true);
Object fieldval = f.get(target);
System.out.println(fieldval.toString());
}
catch(Exception e) {
System.out.println();
}
}
}
catch(Exception e) {
e.printStackTrace();
}
System.out.println("dump end....");
こんな感じ。
でも継承元のクラスのデータまでは取得できないっぽい。改良の余地ありですね。
0 件のコメント:
コメントを投稿