将新的自定义属性添加到retrofit2.Response

时间:2019-06-21 08:20:50

标签: kotlin kotlin-extension

在我的android应用中:

这是我的界面方法:

import retrofit2.Response
import retrofit2.http.GET
import retrofit2.http.Path
import retrofit2.http.Query

@GET("traders/json")
suspend fun getTraidersList(): Response<List<Trader>>

很好。

但是我需要将2个自定义属性添加到retrofit2.Response

例如

val isCorrect  : boolean
val myCustom : MyCustomClass

我要set/get此属性。像这样的SMT:

val response: Response<List<Trader>> = TransportService.getTraidersList()
if (response.isCorrect) {
 // do some logic
}
val myCustom = response.getMyCustom()

在科特林有可能吗?

1 个答案:

答案 0 :(得分:0)

在Kotlin中,您唯一可以做的就是添加一些扩展成员,这些扩展成员实际上只是通常的Java静态方法。扩展获取器和设置器周围的所有内容也都使用静态方法进行了仿真。

基于上述内容,我们无法使用静态方法添加新状态(字段)。

但是我们能做些什么(我对Retrofit不熟悉,应该是可能的),就是使用扩展getter isCorrect,它可以读取响应状态,如果是4xx5xx返回false