Intereting Posts
Почему добавление представления в мой макет меняет ширину всего макета? Плавающий видеопроигрыватель в стиле Youtube Android-видеомагнитофон: не удалось получить поверхность Kotlin повторяемые @annotations не работают на jdk-8 Локальные функции доступа к родительским переменным с тем же именем Почему публичный класс не может распространять частный класс? Не может быть предоставлен без @ Предоставляет-аннотированный метод Gradle sinc не удалось с расширением kotlin. для строки ввода: "" в файле build.gradle file module (app) Как выполнить команду bash в Котлине Требует аннотации продюсирования с «allOf» в Котлине Ошибка установки Kotlin / Native: файл jni.h не найден котлинское деление нулевых аргументов Отправка большого файла через BLE API на Android Атрибут стирается после инициализации – kotlin Как использовать настраиваемый сеттер в корпусе конструктора класса Kotlin

Completed.andThen результаты в "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 , но не аннотирует этот параметр с NotNull аннотации NotNull , поэтому компилятор Kotlin не может проверить значение nullability во время компиляции.

Возможно, стоит подумать об этом в проблеме.