可观察<列表>无法<Object>转换为可观察<列表<Anime>>



我收到错误"不兼容类型: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() 

返回Observable.ajust(Collections.emptyList(((错误已解决,但返回Observable.just(onlyAnimeList(仍然显示错误

同时,如果我将public Observable<List<List<Anime>> getOnlyAnimeObservable()更改为public Observable<List> getOnlyAnimeObservable()

返回Observable.just(onlyAnimeList(已解决错误,但返回Observable.ajust(Collections.emptyList(((显示错误。

这是因为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);
}

最新更新