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

Debugging 在Intellij调试器断点中使用多个条件,debugging,intellij-idea,conditional-breakpoint,Debugging,Intellij Idea,Conditional Breakpoint,我想向IntelliJ中的断点添加多个条件。 比如: stringA.equals("test") && objectA.equals(objectB); 如何执行此操作?IntelliJ IDEA断点条件可以是: 选择此选项可指定命中断点的条件。一个条件是 包含返回true或false的方法的Java布尔表达式, 例如,str1.equals(str2) 此表达式必须在设置断点的行有效, 并在每次命中断点时对其进行计算。如果评估 结果为true时,将执行所选操作 可以输入多行

我想向IntelliJ中的断点添加多个条件。 比如:

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

如何执行此操作?

IntelliJ IDEA断点条件可以是:

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

此表达式必须在设置断点的行有效, 并在每次命中断点时对其进行计算。如果评估 结果为true时,将执行所选操作

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

if (myvar == expectedVariable) {
  System.out.println(myvar);
  anotherVariable = true;
}
return true;
stringA.equals(“test”)和&objectA.equals(objectB)
似乎是一个返回
true
false
的有效表达式,因此它应该可以立即运行

工作证明:

以下条件声明也适用:

return stringA.equals("test") && objectA.equals(objectB);
请注意,在表示需要分号的条件之后有一个红色下划线。如果添加分号,条件将变为无效,您还必须添加
return
语句以使其再次有效。这是一个表面问题,您可以使用不带分号的条件并忽略错误,也可以添加分号并
return
使其成为有效语句:


因此,在桩前添加一个返回桩解决了问题


否,Intellij显示了一个错误,消息不是statment。@ChristianSchulze请查看更新的答案,显示其工作原理如Intellij IDEA 2018.3.2所述。好的,第一个不工作,但第二个添加了返回的工作原理。可能是因为我使用的是Intellice,而不是终极编辑。@ChristianSchulze不,这是因为添加了分号,请参阅我答案中关于与之相关的已知问题的注释。您可以添加分号并返回,也可以不添加分号。您最初的问题没有提到您添加了分号。请看我答案中的注释。