Как создать свой интерфейс для RX?

216
15 декабря 2017, 02:38
Observable.create(subThread -> vkRequest.executeSyncWithListener(new VKRequest.VKRequestListener() {
        @Override
        public void onComplete(VKResponse response) {
            subThread.onNext(response);
            subThread.onComplete();
        }
        @Override
        public void attemptFailed(VKRequest request, int attemptNumber, int totalAttempts) {
            subThread.onError(new Exception());
        }
        @Override
        public void onError(VKError error) {
            subThread.onError(error.httpError);
        }
    })

Как создать интерфейс и добавить туда весь код который находиться в методе create?

А затем новый интерфейс использовать в create? Как правильно это сделать?

Так как я данный кусок кода буду использовать в более чем 30 классах, Чтобы потом проблем не было я вот решил использовать 1 интерфейс.

Answer 1

Нужно создать не свой интерфейс, а наследника от VKRequest.VKRequestListener:

public class MyRequest extends VKRequest.VKRequestListener {
    private final ObservableOnSubscribe subThread;
    public MyRequest(Subscriber subThread) {
        this.subThread = subThread;
    }
    @Override
    public void onComplete(VKResponse response) {
        subThread.onNext(response);
        subThread.onComplete();
    }
    @Override
    public void attemptFailed(VKRequest request, int attemptNumber, int totalAttempts) {
        subThread.onError(new Exception());
    }
    @Override
    public void onError(VKError error) {
        subThread.onError(error.httpError);
    }
}

А затем его использовать:

Observable.create(subThread -> new MyRequestListener(subThread));

Или:

Observable.create(MyRequestListener::new);
READ ALSO
Принятия и отправка файлов по сокетах

Принятия и отправка файлов по сокетах

Здравствуйте, как мне организовать одновременное принятия и отправку файлов по сокетах? Подскажите алгоритм принятия и отправки файлов

192
SIP server на java с использованием Datagram

SIP server на java с использованием Datagram

Есть готовый сервер на java с использованием Datagram https://githubcom/srajat/UDP-SIP-Server но он то падает, потому что строки парсит неправильно, то запросы шлет...

176
Отсортировать массив java

Отсортировать массив java

Не могу отсортировать массив (скорее всего нужен по убыванию)В задании стоит задача вывести двух самых высоких людей, то есть найти два максимальных...

175