|
|
1
43
你可以试试 XStream
打印出:
注意循环引用;) |
|
2
41
我试着按照最初的建议使用XStream,但结果是我想要转储的对象图包含了一个对XStream封送器本身的引用,对此我并不太乐意(我不确定为什么它必须抛出一个异常,而不是忽略它或记录一个好的警告) 然后我尝试了上面user519500的代码,但发现我需要一些调整。以下是一个类,您可以将其应用到提供以下额外功能的项目中:
如上所述,您需要小心堆栈溢出,因此使用最大递归深度工具将风险降至最低。
|
|
|
3
21
您可以将ReflectionStringBuilder与自定义ToString样式一起使用,例如:
然后你像这样调用它:
您还可以使用json库( http://json-lib.sourceforge.net )只要做:
|
|
|
4
13
这将打印出对象的所有字段(包括对象数组)。 注意:这个方法使用递归,所以如果你有一个非常深的对象图,你可能会得到一个堆栈溢出(没有双关语;),如果你需要使用VM参数-Xss10m。如果您使用eclipse将其置于运行状态>运行配置>增强(选项卡)VM增强框并按应用
|
|
|
5
6
我想要一个优雅的解决方案来解决这个问题:
我编写了以下实用程序类:
编辑 自从写了这篇文章,我就有理由创建这个算法的迭代版本。递归版本在深度上受到总堆栈帧的限制,但是您可能有理由转储一个非常大的对象图。为了处理我的情况,我修改了算法,用堆栈数据结构代替运行时堆栈。此版本具有时间效率,并且受堆大小而不是堆栈帧深度的限制。 您可以下载并使用 iterative version here |
|
|
6
4
您应该使用RecursiveToString样式:
|
|
|
7
4
|
|
|
9
1
|
|
|
10
0
不适用于具有除字符串以外的其他键的贴图对象。也许JsonConfig可以处理这个问题。 |
|
|
muni · 将Kd树对象转储到硬盘以供重用 8 年前 |
|
Dominique · 如何解释Windbg“x/2”结果中的双条目? 8 年前 |
|
|
dimid · 如何创建本地Wikidata查询服务? 9 年前 |
|
|
FooAnon · cygwin OMP堆芯转储 9 年前 |
|
|
bigt95nt0110 · 动能JS转储对象财产 12 年前 |
|
|
aah134 · 如何将当前应用程序的版本号附加到核心转储 13 年前 |