首页 > 解决方案 > 在 Intellij 调试器断点中使用多个条件

问题描述

我想向 IntelliJ 中的断点添加多个条件。就像是:

stringA.equals("test") && objectA.equals(objectB);

我怎样才能做到这一点?

标签: debuggingintellij-ideaconditional-breakpoint

解决方案


IntelliJ IDEA 断点条件可以是任何布尔表达式

选择以指定命中断点的条件。条件是一个 Java 布尔表达式,包括返回 true 或 false 的方法,例如 str1.equals(str2)。

此表达式必须在设置断点的行处有效,并且每次命中断点时都会对其进行评估。如果评估结果为真,则执行选定的操作。

您可以输入多行表达式,例如:

if (myvar == expectedVariable) {
  System.out.println(myvar);
  anotherVariable = true;
}
return true;

stringA.equals("test") && objectA.equals(objectB)似乎是返回trueor的有效表达式false,因此它应该开箱即用。

工作证明:

(健康)状况

断点命中

以下条件语句也将起作用:

return stringA.equals("test") && objectA.equals(objectB);

请注意,存在一个已知问题,该问题将在表示需要分号的条件后显示红色下划线。如果添加分号,条件将变为无效,您还必须添加一条return语句以使其再次有效。这是一个表面问题,您可以使用不带分号的条件并忽略错误,也可以添加分号并return使其成为有效语句:

陈述


推荐阅读