如何处理“iterable一定不能为null”Flatmap Rxjava

时间:2017-03-15 05:13:26

标签: java android rx-java

我在我的应用程序中使用FlatMap将Observable发出的项目转换为Iterables。我得到“迭代必须不为空”。因为列表是null所以我想处理这种情况。任何人都可以告诉我解决方案。

flatMap(new Func1<Chapters, Observable<Page>>() {
                    @Override
                    public Observable<Chapter> call(Chapters chapterList) {

                        return Observable.from(chapterList);
                    }
                })

2 个答案:

答案 0 :(得分:3)

尝试:

flatMap(new Func1<Chapters, Observable<Page>>() {
                @Override
                public Observable<Chapter> call(Chapters chapterList) {
                    return chapterList == null
                        ? Observable.empty()
                        : Observable.from(chapterList);
                }
            })

答案 1 :(得分:0)

如果希望它返回一个空的List对象,只需创建一个if语句并使用其构造函数返回一个新的List对象。

@Override
public Observable<Chapter> call(Chapters chapterList) {
    if (chapterList == null) {
        return (new Observable<Chapter>());
    }
    else {
        return Observable.from(chapterList);
    }
}