Единственный способ сделать это без метода изменения два () - вызвать исключение.
Если вы можете изменить код, вы можете вернуть логическое значение, которое сообщает вызывающей стороне о возврате.
Однако самое простое решение - встроить методы в один более крупный метод. Если он слишком велик, вы должны изменить его структуру другим способом, а не размещать сложные элементы управления между такими методами, как этот.
Скажем, у вас есть
public void one() {
System.out.println("Start of one.");
two();
// do something
System.out.println("End of one.");
}
public void two() {
System.out.println("Start of two.");
three();
// do something
System.out.println("End of two.");
}
public void three() {
System.out.println("Start of three.");
// do something
System.out.println("End of three.");
}
Вы можете добавить непроверенное исключение, если не можете изменить два ();
public void one() {
System.out.println("Start of one.");
try {
two();
} catch (CancellationException expected) {
}
// do something
System.out.println("End of one.");
}
public void two() {
System.out.println("Start of two.");
three();
// do something
System.out.println("End of two.");
}
public void three() {
System.out.println("Start of three.");
// do something
System.out.println("End of three.");
throw new CancellationException(); // use your own exception if possible.
}
Вы можете вернуть логическое значение, чтобы сказать return, если вы можете изменить два ()
public void one() {
System.out.println("Start of one.");
two();
// do something
System.out.println("End of one.");
}
public void two() {
System.out.println("Start of two.");
if (three()) return;
// do something
System.out.println("End of two.");
}
public boolean three() {
System.out.println("Start of three.");
// do something
System.out.println("End of three.");
return true;
}
Или вы можете встроить структуры
public void one() {
System.out.println("Start of one.");
two();
// do something
System.out.println("End of one.");
}
public void two() {
System.out.println("Start of two.");
System.out.println("Start of three.");
// do something for three
System.out.println("End of three.");
boolean condition = true;
if (!condition) {
// do something for two
System.out.println("End of two.");
}
}