Как приводить Observable

141
01 октября 2017, 23:39

Есть следующий код

Observable<List<RecyclerItem>> observable;
        if(userId == null){
            observable = (Observable<List<RecyclerItem>>) dataManager.loadMemesFromWeb(pageSize, offset);
        }else{
            observable = dataManager.loadUserPosts(userId, pageSize, offset);
        }

метод loadMemesFromWeb() возвращает Observable<List<Meme>> :

@Override
public Observable<List<Meme>> loadMemesFromWeb(int pageSize, int offset, String sortBy) {
    return  downloadAndCacheMemesFromWeb(pageSize, offset, sortBy);
}


private Observable<List<Meme>> downloadAndCacheMemesFromWeb(int pageSize, int offset, String sortBy){
    final IDatabaseHelper databaseHelper = DatabaseHelper.getInstance();
    BackendlessAPI backendlessAPI = backendlessRetrofit.create(BackendlessAPI.class);
    return backendlessAPI
            .listNewestMemes(pageSize, offset, sortBy)
            .timeout(LOAD_SHOPS_TIMEOUT, TimeUnit.SECONDS)
            .retry(RETRY_COUNT)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .map(memes -> {
                databaseHelper.cacheMemes(memes);
                return memes;
            });
}

И как видно, метод listNewestMemes() тоже возвращает Observable<List<Meme>>

@GET("data/Meme")
Observable<List<Meme>> listNewestMemes(@Query("pageSize") int pageSize,
                                       @Query("offset") int offset,
                                       @Query("sortBy") String sortBy);

Почему я не могу скастовать Observable<List<Meme>>к Observable<List<RecyclerItem>> , если Meme имплементирует интерфейс RecyclerItem?

public class Meme extends RealmObject implements RecyclerItem {
    @SerializedName("created")
    private long timestamp;
    private String image;
    private long likes;
    private String text;
    private boolean userLiked;
    @PrimaryKey
    private String objectId;
    private User author;
    private RealmList<RealmString> tags;
    public Meme() {
    }
}
READ ALSO
Встроенные покупки [требует правки]

Встроенные покупки [требует правки]

Здравствуйте! Подскажите, пожалуйста, как сделать внутриигровые покупки в игре на java? Допустим почти во всех играх есть встроенные покупки...

171
Android - Свой System UI, как сделать?

Android - Свой System UI, как сделать?

Кто может посоветовать материалы и статьи по теме - как создать свой system UI?

185
Не возращает string

Не возращает string

Использую код импорта:

234