是否可以在Eclipse调试器中的值列中显示toString()结果?

时间:2015-05-15 14:10:19

标签: java eclipse debugging watch

是否可以在Eclipse调试器的值列中显示toString()结果?

默认情况下,它显示内置类型的值,并为用户类型显示类型名称+ id:

enter image description here

注意,调试器肯定会显示toString(),但它只在单独的部分(下面)中执行,而不是在Value列中。

3 个答案:

答案 0 :(得分:9)

有可能,如果有点笨拙。一张图片,超过一千字:

enter image description here

在首选项中,搜索"详细格式化程序"。 (可选)为要检查的每种类型定义一个简单的返回命令(如果您想自己选择详细信息)。

然后在下方,选择"显示变量详细信息>作为所有变量的标签" (如果toString()足够你),或者">作为带有详细格式化程序的变量的标签"如果您想使用自定义格式化程序。前者使" Type + ID"显示消失,tho。

"而不是toString()"的简单格式化器: Detail Formatter for "other"

答案 1 :(得分:0)

如果对象未实现toString()方法,您可以定义自己的详细格式化程序。这假设对象提供了访问您感兴趣的字段的公共方法。可以在Codecentric: post about tips on java debugging with Eclipse的博客中找到一个很好的解释。搜索提示“人类可读对象”。

答案 2 :(得分:-1)

我不认为这是可能的,在所有调试器无法修改程序之后,它可以暂停/修改执行本身(如跳过方法调用等)。 toString是一个类似于其他任何方法的方法,调试器无法调用它。