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