наблюдаемыйне может быть преобразовано в наблюдаемый - PullRequest
0 голосов
/ 28 ноября 2018

Я получаю сообщение об ошибке "несовместимые типы: Observable<List<Object>> нельзя преобразовать в Observable<List<Anime>>"

public Observable<List<Anime>> getOnlyAnimeObservable() {
    List onlyAnimeList = getOnlyAnimeList();
    if (onlyAnimeList == null) {
        return Observable.just(Collections.emptyList());  //Required <List<Class>> But Found <List<Object>>
    }
    return Observable.just(onlyAnimeList); //Required <List<Class>> But Found <List>
}

Если я изменю public Observable<List<List<Anime>> getOnlyAnimeObservable() на

public Observable<List<Object>> getOnlyAnimeObservable() 

return Observable.just (Collections.emptyList ()); ошибка устранена, но return Observable.just (onlyAnimeList); по-прежнему показывает ошибку

Atв то же время, если я изменю public Observable<List<List<Anime>> getOnlyAnimeObservable() на public Observable<List> getOnlyAnimeObservable()

return Observable.just (onlyAnimeList); ошибка устранена, но return Observable.just (Collections.emptyList()); показывает ошибку.

1 Ответ

0 голосов
/ 28 ноября 2018

это из-за Collections.emptyList() возвращает List<Object>.Попробуйте этот код:

List<Anime> list = Collections.emptyList();
return Observable.just(list);

getOnlyAnimeList метод также должен возвращать List<Anime> тип.Поэтому полный код должен быть:

 public Observable<List<Anime>> getOnlyAnimeObservable() {
    List<Anime> onlyAnimeList = getOnlyAnimeList();
    if (onlyAnimeList == null) {
        List<Anime> list = Collections.emptyList();
        return Observable.just(list);
    }
    return Observable.just(onlyAnimeList);
 }

Мы можем упростить все:

public Observable<List<Anime>> getOnlyAnimeObservable() {
    List<Anime> list = getOnlyAnimeList();
    if (list == null) {
        list = Collections.emptyList();
    }
    return Observable.just(list);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...