在 Intellij 调试器断点中使用多个条件

Chr*_*ian 2 debugging intellij-idea conditional-breakpoint

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

stringA.equals("test") && objectA.equals(objectB);
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Cra*_*der 5

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

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

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

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

if (myvar == expectedVariable) {
  System.out.println(myvar);
  anotherVariable = true;
}
return true;
Run Code Online (Sandbox Code Playgroud)

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

工作证明:

状况

断点命中

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

return stringA.equals("test") && objectA.equals(objectB);
Run Code Online (Sandbox Code Playgroud)

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

陈述