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

Using multiple Conditions in Intellij Debugger Breakpoint

我想在 IntelliJ 中为一个断点添加多个条件。 类似于:

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

我该怎么做?

IntelliJ IDEA 断点条件可以是any boolean expression:

Select to specify a condition for hitting a breakpoint. A condition is a Java Boolean expression including a method returning true or false, for example, str1.equals(str2).

This expression must be valid at the line where the breakpoint is set, and it is evaluated each time the breakpoint is hit. If the evaluation result is true, the selected actions are performed.

You can enter multi-line expressions, for example:

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

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

工作证明:

以下条件语句也适用:

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

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

所以在语句前面加一个return语句就解决了问题。