如何漂亮地打印一个复杂的Java对象(例如,使用作为对象集合的字段)?[已关闭]
2022-09-04 00:43:20
我正在寻找一个库函数(理想情况下来自常用的框架,例如Spring,Guava,Apache Commons等),它可以很好地打印任何Java对象的值。
这是一个一般性问题,而不是一个具体问题。在StackOverflow上看到了类似的问题,其中一个常见的答案是“在类上实现你自己的方法”,但这个选项并不总是实用的 - 我正在寻找一种通用方法来做到这一点,我遇到的任何对象可能来自第三方代码。另一个建议是使用Apache Commons的RefectionToStringBuilder,例如:toString()
new ReflectionToStringBuilder(complexObject, new RecursiveToStringStyle()).toString()
但这有有限的用途 - 例如,当它遇到一个集合时,它倾向于输出这样的东西:
java.util.ArrayList@fcc7ab1[size=1]
一个实际的用例示例是记录从 JGit 的 pushCommand.call()
方法返回的 Iterable<PushResult>
- 如果发布答案,请确保它适用于此对象以及任何其他复杂对象。