kotlin 避免重复结构的数据类

比如,接口里常见的格式经常会是下面这样的,有没有什么方法能以复用的方式创建数据类呢?

{
code:xxx,
msg:xxx,
data:[
xxxx
]
}

对于这种常见的响应格式,可以在Kotlin中使用以下方法创建通用的数据类:

  1. 创建一个baseResponse基类:
    kotlin
    open class BaseResponse(
    val code: Int,
    val msg: String
    )
  2. 然后数据类继承这个基类:
    kotlin
    data class ApiResponse(
    override val code: Int,
    override val msg: String,
    val data: List
    ): BaseResponse(code, msg)
  3. 对data generics 泛型化:
    kotlin
    data class ApiResponse(
    override val code: Int,
    override val msg: String,
    val data: List
    ): BaseResponse(code, msg)
  4. 创建对象时指定泛型类型:
    kotlin
    val response = ApiResponse(200, "success", userList)
    这样就可以避免每次创建新的数据类,重复代码的问题,用泛型和基类可以很方便地复用响应结构。