使 Android Lifecycle Observer 接收器在 Kotlin 中不可为空
Make Android Lifecycle Observer receiver non nullable in Kotlin
我有 Result
包装数据来自后端的包装器
data class Result<T>(val success: Boolean, val result: T?, val message: String?)
这个想法,检查 success
而不是结果为空或无效,并获取 UI 错误报告的格式化消息。但是当尝试将它与 android 生活方式组件一起使用时,特别是在 Observer
中,我必须检查 null。
如何避免这种空检查?发生这种情况是因为
void onChanged(@Nullable T t);
在 Observer
中。我试图扩展它,但它似乎需要更多自定义包装器 类。我们这里有避免空检查的解决方案吗?
参数被注解为@Nullable 是一个框架错误。已在 androix.lifecycle 2.0.0-beta01.
中修复
Updated answer from @Andrei Vinogradov's answer
在升级到 2.0.0-beta01 之前,您可以尝试此解决方案。使用 Kotlin 库中的标准函数 let :
it?.let{ result ->
if(result.success){
// Rest of your code ..
}
}
我有 Result
包装数据来自后端的包装器
data class Result<T>(val success: Boolean, val result: T?, val message: String?)
这个想法,检查 success
而不是结果为空或无效,并获取 UI 错误报告的格式化消息。但是当尝试将它与 android 生活方式组件一起使用时,特别是在 Observer
中,我必须检查 null。
如何避免这种空检查?发生这种情况是因为
void onChanged(@Nullable T t);
在 Observer
中。我试图扩展它,但它似乎需要更多自定义包装器 类。我们这里有避免空检查的解决方案吗?
参数被注解为@Nullable 是一个框架错误。已在 androix.lifecycle 2.0.0-beta01.
中修复Updated answer from @Andrei Vinogradov's answer
在升级到 2.0.0-beta01 之前,您可以尝试此解决方案。使用 Kotlin 库中的标准函数 let :
it?.let{ result ->
if(result.success){
// Rest of your code ..
}
}