Сделать приемник Android Lifecycle Observer необнуляемым в Котлине - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть Result оболочка, которая оборачивает данные, полученные из бэкэнда

data class Result<T>(val success: Boolean, val result: T?, val message: String?)

Идея этого, отметьте success вместо того, чтобы результат был нулевым или недействительным, и получите отформатированное сообщение для отчетов об ошибках пользовательского интерфейса.Но при попытке использовать это с компонентами образа жизни Android, особенно в Observer, я должен проверить на ноль.

enter image description here

Как я могу избежать этого нольпроверять?Это происходит из-за

void onChanged(@Nullable T t);

в Observer.Я пытался расширить это, но, похоже, требуется больше пользовательских классов-оболочек.Есть ли у нас решение во избежание нулевой проверки здесь.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Обновленный ответ от @ ответа Андрея Виноградова

Пока вы не обновитесь до 2.0.0-beta01 , вы можете попробовать это решение.Используйте стандартную функцию let из библиотеки Kotlin:

it?.let{ result ->
    if(result.success){
    // Rest of your code ..
    }
}
0 голосов
/ 22 ноября 2018

Это ошибка структуры, аргумент аннотируется как @Nullable.Исправлено в androix.lifecycle 2.0.0-beta01.

...