2016-03-15 73 views
2

我想让一个if语句只有在我调试时才变为true。Eclipse Java调试器使if语句条件成立为真

例子:

if(giveMyNumber() == 3){ 
    System.out.println("Is number 3"); 
} 

public int giveMyNumber(){ 
    return 1; 
} 

所以我想停止去调试器if语句,并以去里面模拟为(giveMyNumber()== 3) if和打印“是数字3“

+0

不知道你可以模拟'giveMyNumber()== 3',但如果你把它分配给变量,使用变量作为条件,那么你可以把它真的。 'boolean b = giveMyNumber()== 3;如果(b){}' –

+0

使用jUnit istead? –

回答

3

您可以使用名为Force Return Eclipse的功能,返回值3

如果强制执行早期从非无效方法返回需要对表达式进行评估。例如,如果某个方法返回false,则可以通过选择显示视图中的表达式并调用强制返回来返回true值。在以下示例中,elementCount不等于零,并且将返回false(请参阅显示值elementCount的调试悬停)。

Force Return Example http://help.eclipse.org/mars/topic/org.eclipse.jdt.doc.user/reference/views/shared/images/force-return-code.png

显示视图,我们可以输入我们想要返回的值,选择它并使用部队返回命令强制方法isEmpty()与该值返回(在下面的例子中我们将强制isEmpty()返回值true)。

Force Return Action in the Display View http://help.eclipse.org/mars/topic/org.eclipse.jdt.doc.user/reference/views/shared/images/force-return-action.png

+0

是的,我知道这种方法,但我想知道这是否是一种更快的方法它。 – Mikel

+0

@Mikel不,这是唯一的方法,它并不是那么慢。按F5键进入方法'giveMyNumber()',在Display面板中输入数字'3',右键单击并选择Force Return,然后按F6键进入if语句。很简单,一旦你知道如何。 – Andreas

1

您可以使用条件断点。添加一个断点并选择断点属性...

看一下图像波纹管。

Conditional Breakpoint

选择断点和写入的条件下,你的情况:

giveMyNumber() == 3  
+1

当条件为真时,这会使执行中断*,但是当步进代码时,OP询问如何覆盖if语句的逻辑,以便进入if语句块,即使条件实际上是'假'。 – Andreas

+0

@Andreas。我想念你的观点。 “所以我想在if语句中停止de调试器,并且模拟为(giveMyNumber()== 3)为真,以便进入if和print”Is number 3“”。我没有得到Mikel被askint覆盖的地方...... – josivan

+0

我想在调试模式下临时跳转到条件内:if(true){System.out.println(“Is number 3”)} – Mikel