У меня есть следующий метод, где я использую RxJava для получения некоторых данных от Api, а затем я манипулирую этими данными, чтобы получить список имен пользователей и список пользователей.
public void getUsers(){
disposables = RxUtil.initDisposables(disposables);
Disposable disposable = userApiRepository.getUsers()
.subscribeOn(Schedulers.io())
.doOnNext(otherUsers -> {
List<String> names = new ArrayList<>();
for(OtherUser otherUser: otherUsers){
names.add(otherUser.getDisplayName());
}
String[] userNames = names.toArray(new String[names.size()]);
view.onUserNamesLoaded(userNames);
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(otherUsers -> view.onUsersLoaded(otherUsers),
view::handleError);
disposables.add(disposable);
}
Мне не нравится этот подход в doOnNext , так как я думаю, что его можно улучшить, но не знаю, как.
Может кто-нибудь написать лучшее решение?