Обратный вызов или обратный вызов - это вызов метода более высокого уровня, чем вызывающий. В частности, в процедурном программировании мы обычно думаем о вызовах более высокого уровня в более низкие уровни. Код приложения, вызывающий код библиотеки, и более тонкое расслоение. Обратный вызов отменяет рацион, имея ссылку на метод, переданный на нижний уровень.
В Java это обычно реализуется путем реализации интерфейса, так как язык (пока) не имеет концепции ссылки на одинокий метод - это все объекты с классами времени выполнения. Часто они будут реализованы как анонимные внутренние классы. С другой стороны, это могут быть внешние классы, возможно, с другой конфигурацией, например, сервлеты и апплеты.
Обратный вызов может быть синхронным и асинхронным. Синхронные обратные вызовы вызываются во время отдельного выполнения метода нижнего уровня, например, как в Execute Around Idiom . Они могут быть вызваны позже как в событиях AWT / Swing (тот же поток) или, скажем, java.util.concurrent.ExecutorService
(разные потоки).