Мне кажется, что вам не нужно единственное логическое значение - вы хотите что-то, что будет возвращать вам логическое значение каждый раз, когда вы запрашиваете одно.В качестве простого примера:
public interface ContinueChecker {
boolean shouldContinue();
}
(Ужасные имена, но, надеюсь, вы сможете придумать что-нибудь получше.) Затем вы можете написать:
void wallScan(ContinueChecker checker) {
...
while (checker.shouldContinue()) {
...
}
}
Альтернативной формой этого будетуниверсальный интерфейс, такой как Provider<T>
один из Guice :
public interface Provider<T> {
T get();
}
Ваш метод может занять Provider<Boolean>
для той же цели.
Лично я предпочитаюэтот подход по сравнению с подходом Sebi - он позволяет вашему классу представлять состояние самой доски (или чего-то еще) - должен ли один конкретный робот остановиться, не похоже, что он должен быть частью того же состояния.Насколько я понимаю, он эффективен для данного метода.