liangjingkanji / Net

Android 基于协程/OkHttp网络请求工具
http://liangjingkanji.github.io/Net/
MIT License
1.91k stars 214 forks source link

转换器内若返回一个 `null` 值时会产生 `NullPointerException` 异常 #115

Closed cipchk closed 2 years ago

cipchk commented 2 years ago

问题描述

class DemoConverter : NetConverter {
    override fun <R> onConvert(succeed: Type, response: Response): R? {
        return null
    }
}

最后,会在全局的异常捕获内收到一个 com.drake.net.exception.ConvertException 异常,但是转换后返回一个 null 值理应是合理的需求。

liangjingkanji commented 2 years ago

请求动作指定泛型为可空类型才允许在转换器返回Null

Post<Model?>("/path").await() // 允许转换器返回null
Post<Model>("/path").await() // 不允许转换器返回null

在Kotlin中非可空类型不允许接受Null值, Net转换器的原理很简单就是as转换后返回其值, 没有任何特殊的限制

liangjingkanji commented 2 years ago

在文档第三行有提到转换器返回Null的处理: 使用转换器

请仔细阅读文档