Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理;iterable不能为null“;Flatmap Rxjava_Java_Android_Rx Java - Fatal编程技术网

如何处理;iterable不能为null“;Flatmap Rxjava

如何处理;iterable不能为null“;Flatmap Rxjava,java,android,rx-java,Java,Android,Rx Java,我在我的应用程序中使用FlatMap将可观测物体发出的物体转换成可观测物体。我得到“iterable不能为null”。因为列表为null。所以我想处理这种情况。有人能告诉我解决方法吗 flatMap(new Func1<Chapters, Observable<Page>>() { @Override public Observable<Chapter> call(Chapters

我在我的应用程序中使用FlatMap将可观测物体发出的物体转换成可观测物体。我得到“iterable不能为null”。因为列表为null。所以我想处理这种情况。有人能告诉我解决方法吗

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

                        return Observable.from(chapterList);
                    }
                })
flatMap(新函数1(){
@凌驾
公共可观察呼叫(章节列表){
返回可观察的。来自(章节列表);
}
})

如果希望它返回一个空的列表对象,只需创建一个If语句并使用其构造函数返回一个新的列表对象即可

@Override
public Observable<Chapter> call(Chapters chapterList) {
    if (chapterList == null) {
        return (new Observable<Chapter>());
    }
    else {
        return Observable.from(chapterList);
    }
}
@覆盖
公共可观察呼叫(章节列表){
if(chapterList==null){
返回(新的可观察();
}
否则{
返回可观察的。来自(章节列表);
}
}

如果希望它返回一个空的列表对象,只需创建一个If语句并使用其构造函数返回一个新的列表对象即可

@Override
public Observable<Chapter> call(Chapters chapterList) {
    if (chapterList == null) {
        return (new Observable<Chapter>());
    }
    else {
        return Observable.from(chapterList);
    }
}
@覆盖
公共可观察呼叫(章节列表){
if(chapterList==null){
返回(新的可观察();
}
否则{
返回可观察的。来自(章节列表);
}
}
试试:

flatMap(新函数1(){
@凌驾
公共可观察呼叫(章节列表){
返回chapterList==null
?可观察。空()
:从(章节列表)中可观察到;
}
})
试试:

flatMap(新函数1(){
@凌驾
公共可观察呼叫(章节列表){
返回chapterList==null
?可观察。空()
:从(章节列表)中可观察到;
}
})


Flatmap将从其项目列表中发出每个项目。但是,如果项目列表为空,将会发生什么情况。这种情况在我身上发生。您可以在可观察列表中添加一个“空白”章节。我不确定你对空白章节对象的定义会是什么样子,所以我无法提供确切的代码,但这将涉及至少创建一个章节并将其添加到一个空的可观察列表中。Flatmap将从其项目列表中发出每个项目。但是会发生什么,如果项目列表为空。这种情况发生在我身上。你可以在可观察列表中添加一个“空白”章节。我不确定您对空白章节对象的定义会是什么样子,因此我无法提供确切的代码,但这将涉及至少创建一个章节并将其添加到空的可观察列表中。您是否尝试
.filter(…)
flatMap
之前?仅当列表中的某个项为空时,过滤器才会工作。但如果列表为空,则会出现上述错误。请添加更多具体代码。很难理解您正在谈论的是哪个列表。@Vusal,在上面的示例代码中,chapterList对象包含章节列表。如果列表chapterList包含null,我们可以筛选项目,但在我的情况下chapterList对象为null。我如何处理它?我理解你的意思。如果
chapterList
为空,请尝试返回
Observable.empty()
。是否在
flatMap
之前尝试过
.filter(…)
?仅当列表中的一个项为空时,筛选器才会工作。但是如果列表为空,则会发生上述错误。请添加更多具体代码。很难理解您正在谈论的是哪个列表。@Vusal,在上面的示例代码中,chapterList对象包含章节列表。如果列表chapterList包含null,我们可以筛选项目,但在我的情况下chapterList对象为null。我如何处理它?我理解你的意思。如果
chapterList
为空,请尝试返回
Observable.empty()
。这对我帮助很大。谢谢。返回chapterList!=无效的Observable.from(章节列表):Observable.empty();这对我帮助很大。谢谢。返回章节列表!=无效的Observable.from(章节列表):Observable.empty();