【问题标题】:Is it possible to display toString() result in value column in Eclipse debugger?是否可以在 Eclipse 调试器的值列中显示 toString() 结果?
【发布时间】:2015-07-27 12:06:37
【问题描述】:

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

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

请注意,该调试器肯定可以显示 toString(),但它只在单独的部分(下方)中执行此操作,而不是在 Value 列中。

【问题讨论】:

    标签: java eclipse debugging watch


    【解决方案1】:

    这是可能的,如果有点笨拙。一张图,一千多字:

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

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

    “not toString()”的简单格式化程序:

    【讨论】:

    • 谢谢,但您的回答太过分了:不需要定义任何显示格式化程序,Show variable details = As the label for all variables 发现足够了
    • 是的,对不起,我试图用屏幕截图来展示基本和“过度”的方式,这花了更长的时间,所以后来也澄清了;)通过门获取最重要信息的问题: D
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 不需要修改程序,在JVM内运行时调用被监视对象的方法就足够了。正如@hiergiltdiestfu 指出的那样,可以在调试器中定义自定义格式化程序。
      猜你喜欢
      • 2012-12-30
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 2014-11-09
      • 2017-11-23
      • 1970-01-01
      相关资源
      最近更新 更多