java - IntelliJ 将 toString 更改为调试模式(变量视图)
问题描述
如果我重载toString()
,IntelliJ 中的调试器将Object.toString()
在变量选项卡中的相关对象附近显示结果。
如果toString
重载return "Test1: This is toString overload";
::
有时,我想在调试中看到的与一般的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();
}
然后在调试器中右键单击一个变量 -> 自定义数据视图 -> Java 类型渲染器 -> + -> 类型:可调试
它将为将来的任何程序的任何此类对象执行此操作。
推荐阅读
- rest - 如何使用 Flutter dart 使用 Rest API 登录
- excel - 单击 Excel 中的超链接后在浏览器控制台中调用函数
- react-admin - 如何在反应管理员的列表视图中禁用删除操作?
- java - Apache Spark 和 Java 错误 - 原因:java.lang.StringIndexOutOfBoundsException:开始 0,结束 3,长度 2
- android - 水平 Recyclerview 内的垂直 Recyclerview 使用旧视图并填充嵌套的 recyclerview
- r - R:ggplot2 在一个图中绘制多个数据框
- sage - 如何在 SageMath 7.1 中加载文件
- r - 您如何在多列上对数据框进行排名?
- svg - SVG - 继承多种颜色
- ruby - 限制红宝石折扣