Completable.andThen 结果 "other is null"

Completable.andThen results 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()returns 为假的情况下,我得到以下信息:

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 函数,但是 没有 使用任何类型的 NotNull 注释来注释参数,所以Kotlin 编译器无法在编译时检查可空性。

可能值得在问题中提出这个建议。