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 интерфейс.
Нужно создать не свой интерфейс, а наследника от 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);
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости