转储Java对象的属性
- 论坛
- 转储Java对象的属性
14 浏览
转储Java对象的属性
有没有一个库可以递归地转储/打印对象的属性?我正在寻找类似于Firebug中的console.dir()函数的东西。
我知道commons-lang的ReflectionToStringBuilder,但它不会递归进入一个对象。换句话说,如果我运行以下代码:
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 ]
我意识到在我的示例中,我可以重写Inner的toString()方法,但在现实世界中,我处理的是无法修改的外部对象。