【发布时间】:2015-07-27 12:06:37
【问题描述】:
是否可以在 Eclipse 调试器的 value 列中显示 toString() 结果?
默认情况下,它显示内置类型的值和用户类型的类型名称 + id:
请注意,该调试器肯定可以显示 toString(),但它只在单独的部分(下方)中执行此操作,而不是在 Value 列中。
【问题讨论】:
标签: java eclipse debugging watch
是否可以在 Eclipse 调试器的 value 列中显示 toString() 结果?
默认情况下,它显示内置类型的值和用户类型的类型名称 + id:
请注意,该调试器肯定可以显示 toString(),但它只在单独的部分(下方)中执行此操作,而不是在 Value 列中。
【问题讨论】:
标签: java eclipse debugging watch
这是可能的,如果有点笨拙。一张图,一千多字:
在首选项中,搜索“详细格式化程序”。可以选择为您要检查的每种类型定义一个简单的返回命令(如果您想自己选择详细信息)。
然后在下方,选择 “显示变量详细信息 > 作为所有变量的标签”(如果 toString() 对你来说足够了),或者 > 作为带有详细格式化程序的变量的标签”如果您想使用自定义格式化程序。前者使“Type + ID”显示消失。
“not toString()”的简单格式化程序:
【讨论】:
Show variable details = As the label for all variables 发现足够了
如果对象没有实现toString() 方法,您可以定义自己的详细信息格式化程序。这假设对象提供公共方法来访问您感兴趣的字段。可以在Codecentric: post about tips on java debugging with Eclipse 的博客中找到一个很好的解释。搜索提示“人类可读对象”。
【讨论】:
我认为这是不可能的,毕竟调试器无法修改程序,它只能暂停/修改执行本身(如跳过方法调用等)。 toString 是一个像其他任何方法一样的方法,调试器不能调用它。
【讨论】: