Java:打印出一个对象以进行调试
我想要一种打印java对象的简单方法,或者换句话说,将对象序列化为字符串。我希望看到对象中包含的所有变量的值,如果有更多的对象(如列表或其他),它也应该打印出该对象中的内容。基本上,它类似于JSON编码,但JSON不支持无穷大,我需要看看双精度或浮点值中是否有无穷大或NaNJava:打印出一个对象以进行调试,java,json,tostring,infinity,divide-by-zero,Java,Json,Tostring,Infinity,Divide By Zero,我想要一种打印java对象的简单方法,或者换句话说,将对象序列化为字符串。我希望看到对象中包含的所有变量的值,如果有更多的对象(如列表或其他),它也应该打印出该对象中的内容。基本上,它类似于JSON编码,但JSON不支持无穷大,我需要看看双精度或浮点值中是否有无穷大或NaN 我怎样才能做到这一点呢?通常情况下,这种方法非常有效。但是,在进行映射时,它不起作用。您可以使用它序列化为JSON,因为它是您编写的类。只要适当地重写ToString()方法即可。我没有编写它。这需要很长时间才能手动完成,即
我怎样才能做到这一点呢?通常情况下,这种方法非常有效。但是,在进行映射时,它不起作用。您可以使用它序列化为JSON,因为它是您编写的类。只要适当地重写
ToString()
方法即可。我没有编写它。这需要很长时间才能手动完成,即使我可以。你所说的“但是JSON不支持无穷大”可能是什么意思的复制品?@Amir请参阅规范第2.4节-(JSON官方不支持NaN和infinity)…这是apache公用语言的一部分。链接似乎已断开。请验证它是否已被移动到新位置。这工作非常漂亮,比另一个答案中的反映要好得多。我使用了Gson Gson=new GsonBuilder().serializeSpecialFloatingPointValues().serializeNulls().create();System.out.println(gson.toJson(obj))代码>让我看到空值、NaN值和无穷大值。这对模拟对象或静态变量不太有效