Есть ли библиотека, которая будет рекурсивно выгружать/печатать свойства объектов? Я ищу что-то похожее на console.dir() в Firebug.
Мне известно, что Commons-lang ReflectionToStringBuilder, но он не рекурсирует в объект. I.e., если я запускаю следующее:
public class ToString {
public static void main(String [] args) {
System.out.println(ReflectionToStringBuilder.toString(new Outer(), ToStringStyle.MULTI_LINE_STYLE));
}
private static class Outer {
private int intValue = 5;
private Inner innerValue = new Inner();
}
private static class Inner {
private String stringValue = "foo";
}
}
Получаю:
ToString $Outer @1b67f74 [ intValue = 5
innerValue = ToString $Inner @530daa ]
Я понимаю, что в моем примере я мог бы переопределить метод toString() для Inner, но в реальном мире я имею дело с внешними объектами, которые я не могу изменить.