java - IntelliJ 更改为 Debug模式的字符串(变量 View )

标签 java debugging intellij-idea

如果我重载 toString(),IntelliJ 中的调试器将在变量选项卡中的相关对象附近向我显示 Object.toString() 结果。

如果 toString 重载:返回“Test1:这是 toString 重载”;:

enter image description here

有时,我想在调试中看到的与一般的 toString 重载不同。我知道可以为特定类型/类/等设置另一个表达式,但只能从设置中设置。

有没有一种方法可以(全局)设置一个任意函数名,当这样的函数存在时,该函数名将优先于 toString

例如:
如果 Object.toDebuggerString() 存在,则使用它,否则 - 使用 Object.toString()

class Test1 {
    @Override
    public String toString() {
        return "Test1";
    }
}

class Test2 {
    @Override
    public String toString() {
        return "Test2";
    }

    public String toDebuggerString() {
        return "Testing debugging mode";
    }
}

最佳答案

您可以添加自己的。

interface Debuggable {
    String toDebugString();
}

然后在调试器中右键单击一个变量 -> 自定义数据 View -> Java 类型渲染器 -> + -> 输入:Debuggable

它将在未来为任何程序的任何此类对象执行此操作。

关于java - IntelliJ 更改为 Debug模式的字符串(变量 View ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50722271/

相关文章:

Spring 初始化 : spring-boot-starter vs spring-boot-starter-web

java - 变量从 IntelliJ 调试变量 View 中消失

java - 不同事务更新相同数据 Spring AOP 做脏更新

javascript - V8 快照二进制文件/调试规范

windows - 帮助linux下远程调试

macos - 如何在 Mac 上的 IntelliJ 中将修饰键从 cmd 更改为 ctrl?

java - JPA 2 - 一对一交叉引用

java - JSP 需要重新编译吗?

java - Maven 安装文件未解决依赖关系

debugging - 在开发过程中调试 Firefox 插件的最快方法