如何一步一个条件,如果在Eclipse中调试
我有以下结构:如何一步一个条件,如果在Eclipse中调试
if (obj.isSomethingable()){
// do something }
我怎样才能进入条件,如果obj.isSomethingable()是假的,我不能修改Boolean实例obj?
看起来像这样做的唯一方法就是修改源代码。
boolean bol = obj.isSomethingable();
if (bol) { ... }
之后,您可以将布尔值从变量更改为true。
你可以使用eclipse的Display选项卡执行代码//在做某些事情。
所以,如果您有:
if(obj.isSomethingable())
{
int var =5;
System.out.println(var+8);
}
然后同时在显示选项卡中,如果断点,你可以把:
int var =5;
System.out.println(var+8);
然后突出显示这一切,并单击放大镜看什么该代码的输出将是。
我有一个'返回true'那里。执行,没有任何效果 –
@HoratiuJeflea,这使得你的问题更不明智... –
它使很多道理,相信我。 –
在执行if
之前,请使用调试器更改obj
的状态,使isSomethingable()
返回true。
Salut,
在Debug透视图中,打开“变量”选项卡。你可以选择你的对象并改变它的值。这将适用于基元或简单对象,但不适用于复杂对象。 我已经试过如下:
return new MyObj() {
public boolean isSomething() {
return true;
}
};
但是Eclipse将不会允许您使用annonymous类。 你可以尝试一下模拟或其他东西。谷歌mockito,看看它是否可以为你工作。
Tiberiu
这对我没什么意义......为什么你要调试不应该在当前上下文中执行的代码? –
我想看看如果它被执行会发生什么。如果我使用boolean bol = obj.isSomethingable(),那么我可以将bol设置为true并输入条件。但我想要一种方式来输入它,而不修改代码 –
你能改变你创建这个对象的方式吗?重写方法的子类可用于测试。 –