更新 okhttp 4.12.0 后出现此错误。这是我遇到问题的下面的代码。
fun retrofit2.Response<*>.responseTimeMs(): Long =
raw().run {
receivedResponseAtMillis() - sentRequestAtMillis()
}
我也将其移至 val 并尝试如下。但它不起作用。
fun retrofit2.Response<*>.responseTimeMs(): Long {
val received = raw().receivedResponseAtMillis()
val sent = raw().sentRequestAtMillis()
return (received - sent)
}
请让我知道如何解决这个问题。
Using 'receivedResponseAtMillis(): Long' is an error. moved to val
此消息表明您必须使用 val 属性
receivedResponseAtMillis
而不是函数调用 receivedResponseAtMillis()
。
这不是像代码片段中那样创建引用val received = raw().receivedResponseAtMillis()
。
IDE 通常会显示该错误的快速修复,例如
Replace with 'receivedResponseAtMillis'
这个扩展功能应该可以工作。
fun retrofit2.Response<*>.responseTimeMs(): Long =
raw().run {
receivedResponseAtMillis - sentRequestAtMillis
}
这是
receivedResponseAtMillis()
已弃用的注释
// OkHttp v4.12.0
@JvmName("-deprecated_receivedResponseAtMillis")
@Deprecated(
message = "moved to val",
replaceWith = ReplaceWith(expression = "receivedResponseAtMillis"),
level = DeprecationLevel.ERROR)
fun receivedResponseAtMillis(): Long = receivedResponseAtMillis