【发布时间】:2021-10-19 15:03:41
【问题描述】:
这里我有一个使用 Retrofit2 的 POST 请求返回一个 json 字符串,其中有一个名为“messageCode”的字段
还有一个 BaseResponse 类,它用@SerializedName("code") 定义了一个“val 代码”,它是只读的。
open class BaseResponse(@SerializedName(value = "mc", alternate = ["code"]) val code: Int)
所以我写了一个扩展 BaseResponse 的类,然后将“messageCode”交给 super 中的“code”,如下所示:
class MyConcreteResponse(
messageCode: Int?,
val data: List<String>?
) :BaseResponse(code = messageCode)
但事实证明,当我访问“code”时,它只是0,不等于“messageCode”
我需要加载“代码”,因为另一个只读类访问它,那么如何获取该“消息代码”并将其提供给 super 中的“代码”?
【问题讨论】:
-
您是否检查过“messageCode”在您收到响应时具有该值
-
是的,当我在 MyConcreteResponse 中的“messageCode”之前添加“val”时,我可以访问它并打印正确的值。