data关键字

23 阅读1分钟
  1. 定义data 是 Kotlin 中的一个关键字,用于声明一个数据类(data class)。

  2. 作用 :自动生成一些常用的方法(如 equals()hashCode()toString()copy() 等),并支持解构声明

    1. 限制
    • 必须至少有一个主构造函数参数。
    • 主构造函数中的参数会被用于生成方法。
    • 不能直接继承其他普通类(只能实现接口或继承 sealed class)。

解构声明

sealed class Result
data class Success(val data: Any) : Result()

fun main() {
    val successResult = Success("Success Data")
    // 解构属性
    val (data) = successResult
    println(data)
}

与Java中lombok注解@Data的区别

语言内置支持是(Kotlin 原生支持)。否(需要引入 Lombok 库)。
自动生成的方法自动生成equals()hashCode()toString()copy()等方法。自动生成 getter、setter、equals()hashCode()toString()等方法。
解构支持支持解构声明(Destructuring Declarations)。不支持解构声明。
继承限制不能直接继承其他普通类(只能实现接口或继承sealed class)。没有继承限制,可以正常继承其他类。
简洁性更加简洁,无需额外依赖。需要引入 Lombok 库,并配置 IDE 和构建工具。
灵活性适合简单的数据模型,不适用于复杂逻辑。更灵活,适用于各种场景(包括复杂逻辑)。

双链

双链
密封类sealed class