Completable。Then Then result in“other is null”

我有以下代码:

fun edit(note: Note): Completable = getValidationCompletable(note).andThen(repository.insertOrUpdate(note)) private fun getValidationCompletable(note: Note): Completable { return if (!note.isValidForEdit()) { Completable.error(IllegalArgumentException("note failed validation before edit")) } else { Completable.complete() } } 

note.isValidForEdit()返回false的情况下,我得到以下内容:

 java.lang.NullPointerException: other is null at io.reactivex.internal.functions.ObjectHelper.requireNonNull(ObjectHelper.java:39) at io.reactivex.Completable.concatWith(Completable.java:1040) at io.reactivex.Completable.andThen(Completable.java:908) 

任何人都可以解释这一点吗?

这似乎已经解决了,但只是为了束缚松散的目的, concatWith (在这种情况下是repository.insertOrUpdate(note) )的参数不能为空。

有趣的是,ReactiveX似乎有它自己的ObjectHelper.requireNonNull函数,但没有用任何types的NotNull注解来标注参数,所以Kotlin编译器在编译时不能检查为空。

在一个问题上可能值得提出这个问题。