Задать вопрос
Ответы пользователя по тегу Программирование
  • Что такое "call back interface"?

    @Braidner
    Простой пример
    public interface InitCallback {
        void init();
    
        class Http implements InitCallback {
            void sendData(String url, SuccessCallback success, FailureCallback fail) {
                try {
                    //Делаем реквест
                    String httpResult = "200";
                    //Вызываекм коллбек
                    success.success(httpResult);
                } catch (Exception ex) {
                    //Вызываекм коллбек в случае ошибки
                    fail.fail("400");
                }
            }
    
            public void init() {
                System.out.println("Вызван init коллбек");
            }
    
            interface SuccessCallback {
                void success(String result);
            }
    
            interface FailureCallback {
                void fail(String error);
            }
    
            public static void main(String[] args) {
    
                Http http = new Http();
                if (http instanceof InitCallback) {
                    //Если это наш интерфес, то вызываем колбек
                    http.init();
                }
                
                http.sendData("/my/api", new SuccessCallback() {
                    @Override
                    public void success(String result) {
                        System.out.println("Успешный колбек: " + result);
                    }
                }, new FailureCallback() {
                    @Override
                    public void fail(String error) {
                        System.out.println("Колбек вернул ошибку: " + error);
                    }
                });
            }
        }
    }

    И по такому же принципу реализуются специальные интерфейсы в спринге. Он смотрит от чего унаследован твой бин и если он знает этот интерфейс, то дергает его.
    Ответ написан
    Комментировать