Java:打印出对象以进行调试

问题描述 投票:0回答:3

我想要一种简单的方法来打印出java对象,或者换句话说,将对象序列化为字符串。我想查看对象中包含的所有变量的值,如果有更多对象(如列表或其他),它也应该打印出该对象中的内容。基本上,它类似于 JSON 编码,但 JSON 不支持无穷大,我需要查看双精度或浮点值之一是否有无穷大或 NaN。

我该怎么做?

java json tostring infinity divide-by-zero
3个回答
17
投票

您可以使用 Gson 序列化为 JSON,因为它现在支持 NaN 和 +/- 无穷大


12
投票

通常情况下 ToStringBuilder.reflectionToString(Object) 效果很好。但在做地图时它不起作用。


0
投票

单行使用

com.fasterxml.jackson.databind.ObjectMapper
:

new ObjectMapper().writeValueAsString(myObject)

美化:

new ObjectMapper().configure(SerializationFeature.INDENT_OUTPUT, true).writeValueAsString(myObject)
© www.soinside.com 2019 - 2024. All rights reserved.