我有一个带有链式构造函数的简单Java类Fraction
public class Fraction {
private int numerator;
private int denominator;
public Fraction(){ // no-arg constructor
-> setNumerator(0);
setDenominator(0);
}
public Fraction(Fraction f){ //copy constructor
-> this(f.getNumerator(), f.getDenominator());
}
public Fraction (String sFraction){ // String input constructor
-> this(sFraction.split("/")[0], sFraction.split("/")[1]);
}
public Fraction(String sNum, String sDenom){ // Double string constructor
-> this(Integer.parseInt(sNum), Integer.parseInt(sDenom));
}
public Fraction(int iNum, int iDenom){ // two int constructor
-> this.setNumerator(iNum);
this.setDenominator(iDenom);
}
}
我在每个构造函数的第一行都有断点(标记为 - >)。现在,如果我停在其中一个构造函数的断点处并在Eclipse IDE中点击“Step Return”,则执行将在下一个链接的构造函数断点处停止,而不是从构造函数返回。我不明白这种行为。我认为Step Return应该完成方法的执行并返回。那为什么它会在下一个链式构造函数中遇到断点?
答案 0 :(得分:1)
请参阅下面有关步骤返回的详细说明。
无论您执行resume
,step into/over/return
,所有活动断点都将生成调试光标停止。在有活动断点的地方停止游标,代码将执行。 (从我的角度来看)我会说感谢上帝它做到了。有时你会在代码中添加断点,因为你不确定气味来自哪里;)
更简单到#34;跳过所有断点"当你不需要停止时。有一个 CTRL+ALT+B
快捷方式可以在跳过所有断点之间切换此功能。或者在您不需要时逐个禁用这些点。
More details can be read here.
恢复暂停的线程。
(恢复执行当前挂起的调试目标。)
进入突出显示的陈述。
(在当前执行的代码行中进入下一个方法调用。 要进入某个方法,您必须暂停执行并逐步执行代码。)
跨越突出显示的声明。执行将在相同方法的下一行继续执行,或者(如果您在方法结束时)将继续执行调用当前方法的方法。光标跳转到方法的声明并选择该行。
(在当前正在执行的代码行中跳过下一个方法调用(不输入)。即使该方法永远不会进入,该方法也会正常执行。 要逐步执行某个方法,必须暂停执行并逐步执行代码。)
退出当前方法。退出当前方法后,此选项将停止执行。
(从已经进入的方法返回。即使我们从方法返回,方法内的其余代码也将正常执行。要从方法返回步骤,必须暂停执行并进行步进通过代码。)
暂停目标的选定线程,以便您可以浏览或修改代码,检查数据,步骤等。
(暂停在调试目标中执行当前选定的线程。一旦所选线程暂停,您就可以检查其堆栈帧。)
终止所选的调试目标。
(终止与所选调试目标关联的启动。一旦启动终止,它就可以从Debug视图中自动删除。要更改此设置,请使用Run / Debug - > Launching首选项页面。)
终止所选的调试目标并重新启动它。
(首先终止所选的调试目标,然后重新启动它。一旦启动终止,它就可以自动从Debug视图中删除。要更改此设置,请使用Run / Debug - &gt; Launching首选项页面。)< / p>
终止所选的调试目标并将其从视图中删除。
(要终止与所选调试目标关联的启动并将其从调试视图中删除。)
终止视图中的所有活动启动。
(在调试和控制台视图中终止所有正在运行的调试目标。如果目标无法终止,它将被断开。一旦启动终止,它可以自动从调试和控制台视图中删除。要更改此设置使用Run / Debug - &gt;启动首选项页面。)