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

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

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

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

enter image description here

注意,调试器绝对可以显示

toString()
,但它仅在单独的部分(如下)中执行此操作,而不是在
Value
列中。

java eclipse debugging watch
3个回答
17
投票

这是可能的,虽然有点笨拙。

从视图的菜单(汉堡包图标)中,选择 JavaJava 首选项...(进入“详细格式化程序”首选项部分)。

在底部,将 “显示变量详细信息(‘toString()’值)”设置为:

  • 作为所有变量的标签”(如果 toString() 对你来说足够了): enter image description here 警告:这会使“类型 + ID”显示消失。
  • 或者“作为带有详细格式化程序的变量的标签”如果您想使用自定义格式化程序。

(如果您想自己选择详细信息),在顶部(带有详细格式化程序的类型),为您要检查的每种类型定义一个简单的返回命令。 “not toString()”的简单格式化程序: Detail Formatter for


0
投票

如果对象未实现

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


-2
投票

我认为这是不可能的,毕竟调试器无法修改程序,它只能停止/修改执行本身(例如跳过方法调用等)。 toString 是一个像其他方法一样的方法,调试器无法调用它。

© www.soinside.com 2019 - 2024. All rights reserved.