我在我的应用程序中使用FlatMap将Observable发出的项目转换为Iterables。我得到“迭代必须不为空”。因为列表是null所以我想处理这种情况。任何人都可以告诉我解决方案。
flatMap(new Func1<Chapters, Observable<Page>>() {
@Override
public Observable<Chapter> call(Chapters chapterList) {
return Observable.from(chapterList);
}
})
答案 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);
}
}