【发布时间】:2021-10-31 21:25:25
【问题描述】:
我正在尝试处理 Kotlin/Android 上的改造响应:
if (response.isSuccessful && response.body() != null) {
val result = response.body().result
首先我不明白响应如何成功并且正文为空。无论如何,如果我添加空检查,我也会得到“智能转换为‘xy’是不可能的,因为‘response.body()’是一个复杂的表达式”添加非空断言代码(!!) 实际上对我来说这是两个单独的警告,但为什么是 null-Assertion 请求?
【问题讨论】:
-
First I don't understand how the response can be successful and the body null。请检查 HTTP 204 代码 -
@LeandroMaro Javadoc 不正确吗? github.com/square/retrofit/blob/master/retrofit/src/main/java/…
-
@Tenfour04 不过,javadoc 并没有说明 body 是非空的。正文可以反序列化为 null。
-
@Joffrey 不,尽管我认为它的编写方式模棱两可。这似乎至少暗示了
isSuccessful时存在一个值,但也许他们认为null是一个有效的“反序列化值”。 -
是的,我同意这里的文档不精确。这就是为什么我个人不会排除
null在信息如此之少的情况下可能的价值