假设我有一个类似这样的方法:
public void doSomething() {
doThingA();
doThingB();
doThingC();
doSomething();
}
然后让我们将这些方法之一定义为:
public void doThingB() {
if (x == 1) {
startDifferentMethodLoop()
}
}
让我们说startDiffernetMethodLoop()
有像doThingE()
这样的单独方法,当然也可以通过再次调用iteself来结束。
问题:如果doThingB()
在x等于1时变为活动状态,那么java会将第一个循环中的优秀方法排队(特别是doThingC
和doSomething
并尝试完成它们一次一切都解决了?如果是这样,告诉Java的首选方法是,一旦X为真,并且调用了新循环,那么未完成的方法不需要排队?
或者Java是否忘记了原始方法,因为它们从未被调用过?
答案 0 :(得分:1)
你可以让你的方法返回一个布尔值,意思是"已解决",就像这样:
// and similar for other methods
public boolean doThingB() {
if (x == 1) {
startDifferentMethodLoop();
return true;
} else {
return false;
}
}
public void doSomething() {
if (doThingA()) return;
if (doThingB()) return;
if (doThingC()) return;
doSomething();
}