Ste*_*ers 8 java collections logging object pretty-print
我正在寻找一个库函数(理想情况下来自常用的框架,例如Spring,Guava,Apache Commons等),它可以很好地打印任何Java对象的值.
这是一个普遍的问题,而不是具体的问题.在StackOverflow上看到了类似的问题,其常见的答案是" toString()在类上实现自己的方法"但是这个选项并不总是实用的 - 我正在寻找一种通常的方法来处理我遇到的任何对象,这可能源于第三方代码.另一个建议是使用Apache Commons的RefectionToStringBuilder,例如:
new ReflectionToStringBuilder(complexObject, new RecursiveToStringStyle()).toString()
Run Code Online (Sandbox Code Playgroud)
但这种用途有限 - 例如,当它遇到一个集合时,它倾向于输出这样的东西:
java.util.ArrayList@fcc7ab1[size=1]
Run Code Online (Sandbox Code Playgroud)
一个实际的用例示例是记录Iterable<PushResult>从JGit pushCommand.call()方法返回的内容- 如果发布答案,请确保它可以与此以及任何其他复杂对象一起使用.
您可以尝试使用Gson。它还可以序列化数组,映射或其他任何内容。
MyObject myObject = new MyObject();
Gson gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
gson.toJson(myObject);
Run Code Online (Sandbox Code Playgroud)
对于反序列化使用:
gson.fromJson(MyObject.class);
Run Code Online (Sandbox Code Playgroud)
对于类型化的地图,请参见以下答案:Gson:有没有更简单的方法来序列化地图
| 归档时间: |
|
| 查看次数: |
12455 次 |
| 最近记录: |