Я читаю ответы из аналогичных вопросов и ответов
Как создать асинхронный HTTP-запрос в JAVA? | Шаблон проектирования асинхронного программирования |
AsyncTask Android - Шаблон проектирования и возвращаемые значения
Я вижу много решений, но ни одно из них меня не удовлетворяет.
Способ прослушивания
Как только результаты получены, обработка выполняется в методе onResult.
public interface GeolocationListener {
public void onResult(Address[] addresses);
public void onError(Exception e);
}
Это решение не совсем меня удовлетворяет, потому что я хочу обработать результаты в основном методе.Я ненавижу этот интерфейс, потому что когда ответ возвращается, он обрабатывается в onResult, что приводит к цепочкам обработки и невозможности вернуться к методу "main".
Способ сервлета
public class SignGuestbookServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
// ...
resp.sendRedirect("/guestbook.jsp");
}
}
Нет открытого кода Java, вызывающего сервлет.Все настройки выполняются в файле web.xml
Как я хочу
Дождитесь ответа, подобного этому
Response a = getResponse();
// wait until the response is received, do not go further
// process
Response b = getResponse();
// wait until the response is received, do not go further
process(a,b);
Есть лиразработать шаблон для обработки асинхронного запроса и ожидания ответа, как указано выше?Другой способ, чем слушатель.Пожалуйста, не библиотека или рамки.
РЕДАКТИРОВАТЬ Спасибо за ответы.Я не дал вам полную картину, поэтому я показал класс Geolocation, я начал реализацию.Я не знаю, как реализовать метод.Может кто-то показывает "как"?Он (или она) также должен реализовать слушателя для получения результатов
private Address getFullAddress (String text, AddressListener listener, ... ){
// new Geolocation(text, listener, options).start()
// implements Geolocation.GeolocationListener
// how to return the Address from the onResult ?
}