java 循环记忆和处理未完成的任务
java loop memory and disposal of outstanding tasks
假设我有一个方法是这样的:
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 忘记了原始方法,因为它们从未被调用过?
你可以让你的方法 return 一个布尔值,意思是 "resolved",像这样:
// 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();
}
假设我有一个方法是这样的:
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 忘记了原始方法,因为它们从未被调用过?
你可以让你的方法 return 一个布尔值,意思是 "resolved",像这样:
// 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();
}