比如,接口里常见的格式经常会是下面这样的,有没有什么方法能以复用的方式创建数据类呢?
{
code:xxx,
msg:xxx,
data:[
xxxx
]
}
对于这种常见的响应格式,可以在Kotlin中使用以下方法创建通用的数据类:
- 创建一个baseResponse基类:
kotlin
open class BaseResponse(
val code: Int,
val msg: String
) - 然后数据类继承这个基类:
kotlin
data class ApiResponse(
override val code: Int,
override val msg: String,
val data: List
): BaseResponse(code, msg) - 对data generics 泛型化:
kotlin
data class ApiResponse(
override val code: Int,
override val msg: String,
val data: List
): BaseResponse(code, msg) - 创建对象时指定泛型类型:
kotlin
val response = ApiResponse(200, "success", userList)
这样就可以避免每次创建新的数据类,重复代码的问题,用泛型和基类可以很方便地复用响应结构。