hegaojian / JetpackMvvm

:chicken::basketball:一个Jetpack结合MVVM的快速开发框架,基于MVVM模式集成谷歌官方推荐的JetPack组件库:LiveData、ViewModel、Lifecycle、Navigation组件 使用Kotlin语言,添加大量拓展函数,简化代码 加入Retrofit网络请求,协程,帮你简化各种操作,让你快速开发项目
https://github.com/hegaojian/JetpackMvvm
Apache License 2.0
3.13k stars 610 forks source link

网络请求返回的 data 为 null 时奔溃 #46

Closed STGing closed 3 years ago

STGing commented 3 years ago

首先感谢大佬的框架,集成到项目中挺方便的。最近在使用中碰到一些问题,咨询一下。 1.我这边返回的数据格式就是那种有 code,message,data 的样子 2.所以我网络请求一般都是用自动脱壳的方式,但是这边有个问题是,当返回的数据 data 是 null的时候,app就会奔溃 报错信息: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter it

此处的 it 是请求成功后,在 parseState(resultState,{ 这里的it })

  1. 用不脱壳的方式应该是ok的,因为自己可以处理进行判空呀啥的。但是所有的请求接口,总会有的接口有时候返回 null 有时候有数据,这样的话岂不是所有的接口都需要使用不脱壳的方式嘛。 4.咨询一下大佬有没有更好的解决方式,或者怎么弄会更合理
hegaojian commented 3 years ago

在写Retrofit请求配置的时候设置返回值泛型可为空 例如:

 @GET("xxx")
  suspend fun xxx(): ApiResponse<Any?>