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

时间:2019-01-09 10:48:58

标签: debugging intellij-idea conditional-breakpoint

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

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

我该怎么做?

2 个答案:

答案 0 :(得分:1)

IntelliJ IDEA断点条件可以为any boolean expression

  

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

     

此表达式必须在设置断点的行上有效,   并在每次遇到断点时对其进行评估。如果评价   结果为true,则执行选定的动作。

     

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

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

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

工作证明:

condition

breakpoint hit

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

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

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

statement

答案 1 :(得分:-1)

因此,在陈述之前添加返回陈述即可解决该问题。

without return

with return